Я студент, выполняющий проект в SQL Server 2005. Я пытаюсь написать процедуру для генерации и вставки первичного ключа для идентификатора. Я думал о триггере ввода, но я получаю ошибки. Может кто-то мне помочь .. Это то, что я придумал до сих пор:Перед запуском для 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