請教:觸發(fā)器中select語句里面的表名稱不能使用變量嗎?
以下是小弟寫的存儲過程,請達人指點哦:
CREATE TRIGGER [TRIGGER_SET_ASSEMBLY] ON [dbo].[SET_ASSEMBLY]
FOR DELETE
AS
DECLARE
@TABLE VARCHAR(100),
@COUNT INT
SET @TABLE=‘DATA_‘+(SELECT Spelling FROM DELETED)
SET @COUNT=(SELECT COUNT(*) FROM @TABLE)--這條語句報錯,說變量@TABLE未定義,可是已經(jīng)定義了哦
/*IF @COUNT>0
BEGIN
RAISERROR(‘該組合下已有 ‘ + @COUNT + ‘ 條數(shù)據(jù),為了維護數(shù)據(jù)庫的完整性,不能刪除!‘,10,1)
ROLLBACK
END*/
謝謝!
Trigger可以使用變量,但是你的用法不對。
大哥,指點一下,該怎么用呢?
如果換成把那條語句中的@TABLE換成確定的表名稱,就沒有錯誤了,郁悶中
Sql Server不支持在FROM子句中使用變量
你可以動態(tài)構建命令字符串,再使用EXECUTE執(zhí)行
如
DECLARE @Sql varchar(1024)
DECLARE @tableName varchar(255)
SET @tableName = ‘sysobjects‘
SET @Sql = ‘select * from ‘ + @tableName
EXECUTE(@Sql)
本站僅提供存儲服務,所有內容均由用戶發(fā)布,如發(fā)現(xiàn)有害或侵權內容,請
點擊舉報。