我有一個table_1
這是從table_2
通過下面的語句獲取數據:INSTEAD OF觸發器獨特的PK ID
INSERT INTO database1.tbl_1 (idx, user_id, stasus_idx)
SELECT idx, user_id, stasus_idx
FROM database2.table_2
WHERE stasus_idx = 591
的table_1
有確切的列結構table_2
除了有在開始一個額外的列提供獨特的ID
。所以table_1
列是這樣的:
ID, idx, user_id, stasus_idx
我已經創建了一個INSTEAD OF TRIGGER
這樣的:
CREATE TRIGGER trg_ID ON table_1
INSTEAD OF INSERT
AS
BEGIN
SET IDENTITY_INSERT table_1 ON
.
. -- trigger
.
SET IDENTITY_INSERT table_1 OFF
END
....插入每一行的新的獨特的ID
但預期ID不起作用。它只是插入1記錄及其完成。我可以將所有行取入CURSOR並逐個處理,但效率非常低。
感謝您的幫助。
難道你不能只聲明'id int identity(1,1)unique'或'id int identity(1,1)primary key'? –
這太容易了:),唯一的ID實際上存在於許多表中,並且在所有這些表中必須是唯一的。所以當在一個表中插入唯一的ID時,它將增加下一個表的剩餘位置等等。 – Milan
。 。如果您使用的是SQL Server 2012,則序列可以解決此問題(http://technet.microsoft.com/zh-cn/library/ff878058.aspx)。 –