如何在所有用户表中查找所需要的记录?
在一个数据库中有很多用户表,我想在这些用户表中按条件查找所需要的记录,该怎么做?
比如:我想查找用户编号=001和002的记录都在那些表中存在,这样的SQL 语句该怎样写。
在SQL SERVER 2000环境下。
[解决办法]
用动态语句结合sysobjects表来查询.
[解决办法]
--不好意思 掉了个)号declare @name nvarchar(100)declare cur cursor for select name from sysobjects where type = 'U'open curfetch next from cur into @nameWHILE @@FETCH_STATUS = 0begin declare @sql nvarchar(500),@s varchar(5000) set @s ='' set @sql='select @s=isnull(@s+''+'','''')+'''''',''''''+''+cast(isnull([''+name+''],'''''''') as varchar)'' from syscolumns where id=object_id('''+@name+''') and xtype in(175,239,99,231,35,167) ' exec sp_executesql @sql,N'@s varchar(5000) out',@s out if len(@s) > 0 exec('if exists(select 1 from (select '+ @s+' as col from ['+@name+']) b where 用户编号 in(''001'',''002'')) print '''+@name+'''') fetch next from cur into @nameendclose curDEALLOCATE cur