SSMS
 sql >> Cơ Sở Dữ Liệu >  >> Database Tools >> SSMS

Tạo tập lệnh với id mới (cũng cho phụ thuộc)

Một cái gì đó như thế này? Tôi sử dụng một biến có giá trị trong bảng để "thêm" một cột vào bảng biểu mẫu ban đầu.

DECLARE @Form1 UNIQUEIDENTIFIER=NEWID();
DECLARE @Form2 UNIQUEIDENTIFIER=NEWID();

DECLARE @tblForms TABLE(id UNIQUEIDENTIFIER,FormName VARCHAR(100));
INSERT INTO @tblForms VALUES(@Form1,'test1'),(@Form2,'test2');

DECLARE @tblFields TABLE(id UNIQUEIDENTIFIER,FormId UNIQUEIDENTIFIER,FieldName VARCHAR(100));
INSERT INTO @tblFields VALUES(NEWID(),@Form1,'test1.1'),(NEWID(),@Form1,'test1.2'),(NEWID(),@Form1,'test1.3')
                            ,(NEWID(),@Form2,'test2.1'),(NEWID(),@Form2,'test2.2'),(NEWID(),@Form2,'test2.3');

--These are "your original IDs"
SELECT frms.id,frms.FormName
      ,flds.id,flds.FieldName
FROM @tblForms AS frms
INNER JOIN @tblFields AS flds ON frms.id=flds.FormId ;                           

--Copy forms into a new table with an extra column
DECLARE @tblFormsNeu TABLE(id UNIQUEIDENTIFIER,FormName VARCHAR(100),myNewID UNIQUEIDENTIFIER);
INSERT INTO @tblFormsNeu
SELECT id,FormName,NEWID() FROM @tblForms;

SELECT frms.myNewID, frms.FormName
      ,NEWID() AS myNewFieldID,flds.FieldName
FROM @tblFormsNeu AS frms
INNER JOIN @tblFields AS flds ON frms.id=flds.FormId    



  1. DBeaver
  2.   
  3. phpMyAdmin
  4.   
  5. Navicat
  6.   
  7. SSMS
  8.   
  9. MySQL Workbench
  10.   
  11. SQLyog
  1. Lỗi kết nối cơ sở dữ liệu cục bộ phòng thu máy chủ SQL trong Windows 7

  2. Truy vấn SQL So sánh các giá trị trong mỗi 15 phút và hiển thị kết quả mỗi giờ

  3. Powershell:Trình tạo tập lệnh SQL Server Management Studio

  4. Trong SSMS, làm cách nào để thay đổi tên tab của cửa sổ truy vấn SQL?

  5. Truy vấn SQL, nếu giá trị là null thì trả về 1