[英]SQL Server : Insert trigger
我下面的觸發器有問題。 謝謝你的幫助。
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,過程大寫,第13行
“ @new_imie”附近的語法不正確。
消息102,級別15,狀態1,過程大寫,第17行
“ END”附近的語法不正確。
請勿為此使用光標。
您可以使用一次影響所有行的UPDATE
語句,而不是一個接一個地處理它們。
CREATE TRIGGER upper_case
ON osoba
AFTER INSERT
AS
BEGIN
UPDATE O
SET imie = UPPER(SUBSTRING(I.imie, 1, 1)) + SUBSTRING(I.imie, 2, LEN(I.imie))
FROM INSERTED I
JOIN osoba O
ON I.imie = O.imie
END
分配@new_imie
( msdn )時應使用SET
:
SET @new_imie = UPPER(SUBSTRING(@imie, 1, 1)) + SUBSTRING(@imie, 2,LEN(@imie));
您對@new_imie的分配需要在其前面加上SET關鍵字...
SET @new_imie = UPPER(SUBSTRING(@imie, 1, 1)) + SUBSTRING(@imie, 2,LEN(@imie))
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.