在一个数据库中有很多用户表,我想在这些用户表中按条件查找所需要的记录,该怎么做?
比如:我想查找用户编号=001和002的记录都在那些表中存在,这样的SQL 语句该怎样写。
在SQL SERVER 2000环境下。
------解决方案--------------------
用动态语句结合sysobjects表来查询.
------解决方案--------------------
- SQL code
--不好意思 掉了个)号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([email protected]+''') and xtype in(175,239,99,231,35,167) ' exec sp_executesql @sql,[email protected] varchar(5000) out',@s out if len(@s) > 0 exec('if exists(select 1 from (select '+ @s+' as col from [[email protected]+']) b where 用户编号 in(''001'',''002'')) print [email protected]+'''') fetch next from cur into @nameendclose curDEALLOCATE cur