如何在SQL Server中进行类似的查询?
SELECT my_value
FROM all_tables
WHERE myopt = 'options';
答案 0 :(得分:0)
您可能希望使用sp_MSforeachtable SP(来自Microsoft的不受支持的命令),它允许您为数据库中的每个表发出命令。
exec sp_MSforeachtable'从顶部选择1 *? “
问号将替换为当前数据库中的每个表名。
您还可以通过编写自己的代码来遍历所有表。下面是一个示例,它将列出数据库中每个表的第一行。请注意,我没有使用游标,这会对某些用户产生很大的影响:
声明@curtable nvarchar(500)
声明@sqlstr nvarchar(500)
在
上设置nocount选择'['+ t1.TABLE_SCHEMA +']。['+ t1.TABLE_NAME +']'作为表名
进入## t5 来自INFORMATION_SCHEMA.TABLES t1
其中TABLE_TYPE ='BASE TABLE'
按t1.TABLE_SCHEMA +'排序。' + t1.TABLE_NAME
从## t5
中选择Top 1 @curtable = tablename虽然@curtable不为空
开始
select @curtable
set @sqlstr = N'select top 1 * from '+@curtable+' with (nolock)'
print @sqlstr
exec sp_executesql @sqlstr
delete from ##t5 where tablename = @curtable
set @curtable= null
select @curtable = tablename from ##t5
端