T-SQL:在几个表中搜索值

时间:2014-02-27 09:32:34

标签: sql sql-server tsql

我有几个列Archive的表。

在触发器上,我想检查几个表中是否存在该值。

当然我可以复制每个表的查询,但我认为使用变量可以更容易。

我有一张表格RefTable,其中包含在数据集ID, TblName中创建的所有表格。

所有表都在同一个数据库中

这是我想要的,但它不起作用:

IF EXISTS (SELECT archive from (select TblName FROM RefTable) WHERE archive = @var)

感谢您的支持。

1 个答案:

答案 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