我是一名在SQL Server 2005中執行項目的學生。我正在嘗試編寫一個過程來爲ID生成並插入主鍵。我想過一個插入觸發器之前,但我得到錯誤。有人可以幫助我..這是我到目前爲止:觸發SQL Server 2005之前
CREATE TRIGGER Create_ResourceID
ON Resource
before INSERT
AS
DECLARE @resourceid INT
SELECT @resourceid = (max(ResourceID) + 1) FROM Resource
GO
INSERT INTO Resource(ResourceID) VALUES (@resourceid);
你得到什麼錯誤?順便說一句,我認爲你需要縮進你的代碼的第一行(開始'CREATE TRIGGER',但我不能在縮進中編輯,因爲StackOverflow告訴我需要改變至少6個字符,而縮進只有4個! – nurdglaw
SQL Server沒有任何'BEFORE'觸發器,只是不存在,您需要使用'INSTEAD OF INSERT'觸發器。 –
爲什麼不使用['IDENTITY'](http:/ /msdn.microsoft.com/en-us/library/ms186775(v=sql.90).aspx)列?它避免了您似乎註定要體驗的競爭條件的所有變化,不需要觸發器,並使用['SCOPE_IDENTITY()'](http://msdn.microsoft.com/en-us/library/ms190315(v = sql.90).aspx)或['OUTPUT']( http://msdn.microsoft.com/en-us/library/ms177564(v=sql.90).aspx)子句。(_Do_花時間瞭解OUTPUT。) – HABO