描述:插入資料后,當該條資料中時間欄位為
當前時間時,修改該條資料欄位(state)值
create trigger updateState
on [emailHis]
after INSERT
as
begin
declare @state int
if exists(SELECT id @state,dateTime from [emailHis] WHERE dateTime=GETDATE())
UPDATE [emailHis] set state=2 where id=@state
end
go
報錯如下:
> Msg 102, Level 15, State 1, Server WIN-TNFHCMO65GI, Procedure updateState, Line 7
“@state”附近有語法錯誤。
> [42000] [Microsoft][ODBC Driver 17 for SQL Server][SQL Server]“@state”附近有語法錯誤。 (102)
> 時間: 0.003s
uj5u.com熱心網友回復:
SELECT id @state,dateTime from你這是想干嘛
uj5u.com熱心網友回復:
SELECT id @state 這邊有問題,如何修改呢。。。請問uj5u.com熱心網友回復:
時間判斷是精確到秒嗎,如果你插入的資料過多,插入的開始時間和結束時間之間就會有時間差。你最好把這個觸發器所想實作的業務邏輯描述清楚,否則就只能猜了,要么你就試試下面的邏輯是不是你要的
create trigger updateState
on [emailHis]
after INSERT
as
begin
UPDATE emailHis
set state=2
FROM emailHis AS A
JOIN INSERTED B ON A.ID=B.ID
WHERE A.DATETIME=CONVERT(SMALLDATETIME,GETDATE())
end
go
轉載請註明出處,本文鏈接:https://www.uj5u.com/shujuku/285232.html
標籤:疑難問題
上一篇:222
下一篇:代碼編程