SELECT my_value FROM all_tables WHERE myopt =' options&#39 ;;

时间:2015-02-27 13:35:01

标签: sql sql-server select

如何在SQL Server中进行类似的查询?

SELECT my_value 
FROM all_tables 
WHERE myopt = 'options';

1 个答案:

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