請教:觸發(fā)器中select語句里面的表名稱不能使用變量嗎?
以下是小弟寫的存儲過程,請達(dá)人指點(diǎn)哦: 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)--這條語句報(bào)錯(cuò),說變量@TABLE未定義,,可是已經(jīng)定義了哦 /*IF @COUNT>0 BEGIN RAISERROR(‘該組合下已有 ‘ + @COUNT + ‘ 條數(shù)據(jù),為了維護(hù)數(shù)據(jù)庫的完整性,,不能刪除,!‘,10,1) ROLLBACK END*/ 謝謝! Trigger可以使用變量,,但是你的用法不對,。 大哥,指點(diǎn)一下,,該怎么用呢,? 如果換成把那條語句中的@TABLE換成確定的表名稱,就沒有錯(cuò)誤了,,郁悶中 Sql Server不支持在FROM子句中使用變量 你可以動態(tài)構(gòu)建命令字符串,再使用EXECUTE執(zhí)行 如 DECLARE @Sql varchar(1024) DECLARE @tableName varchar(255) SET @tableName = ‘sysobjects‘ SET @Sql = ‘select * from ‘ + @tableName EXECUTE(@Sql) |
|