我在下面觸發了一個問題。謝謝你的幫助。SQL Server:插入觸發器
CREATE TRIGGER upper_case ON osoba
AFTER INSERT AS
BEGIN
DECLARE @imie VARCHAR(25)
DECLARE @new_imie VARCHAR(25)
DECLARE my_cursor CURSOR FAST_FORWARD FOR SELECT imie FROM INSERTED
OPEN my_cursor
FETCH NEXT FROM my_cursor INTO @imie
WHILE @@FETCH_STATUS = 0
BEGIN
@new_imie = UPPER(SUBSTRING(@imie, 1, 1)) + SUBSTRING(@imie, 2,LEN(@imie))
END
UPDATE osoba
SET imie = @new_imie WHERE imie = @imie
END
錯誤消息:
消息102,級別15,狀態1,過程UPPER_CASE 13行
附近有語法錯誤@new_imie'。
Msg 102,Level 15,State 1,Procedure upper_case,Line 17
'END'附近語法不正確。
在**觸發器中使用**遊標**是關於您在SQL Server中可以做的最糟糕的事情。你應該不惜一切代價避免這種情況!觸發器應該非常精簡,非常高效,並且運行時間絕對最短..... –
您是否關閉並取消分配光標? – AllenG
它應該做什麼?它似乎沒有做任何事情。 – RBarryYoung