我有几个列Archive
的表。
在触发器上,我想检查几个表中是否存在该值。
当然我可以复制每个表的查询,但我认为使用变量可以更容易。
我有一张表格RefTable
,其中包含在数据集ID, TblName
中创建的所有表格。
所有表都在同一个数据库中
这是我想要的,但它不起作用:
IF EXISTS (SELECT archive from (select TblName FROM RefTable) WHERE archive = @var)
感谢您的支持。
答案 0 :(得分:0)
您肯定必须使用某种形式的动态SQL来执行此搜索。一个例子(如果你愿意,可以将其拉入函数中):
declare @sqlstmt nvarchar(MAX)
declare @tablename nvarchar(100)
declare @username nvarchar(100)
set @tablename = 'UserProfile'
set @username = 'janed'
set @sqlstmt = 'select count(*) from ' + @tablename + ' where username = ''' + @username + ''''
exec sp_executesql @sqlstmt