当前位置: 代码迷 >> Sql Server >> 【】SQL SERVER中怎么查询一个数值在一个库中那些表的那些列中出现
  详细解决方案

【】SQL SERVER中怎么查询一个数值在一个库中那些表的那些列中出现

热度:104   发布时间:2016-04-27 18:01:10.0
【求助】SQL SERVER中如何查询一个数值在一个库中那些表的那些列中出现?
有一个医疗系统,有许多报告。我想在数据库中查询一些这些报告到底都存在那个表下了。

报告的名称或内容都是一段中文组成的,我希望能通过查询报告的名称或内容得到我想要找的表或几个表。

我在论坛上查出“SQL查询某个字段在数据库中出现在哪些表中”的帖子,但是我不清楚只知道数值而不知道列名要如何查询?



------解决方案--------------------
SQL code
DECLARE @WHAT VARCHAR(800) SET @WHAT='178' --要搜索的字符串 DECLARE @SQL VARCHAR(8000)  DECLARE TABLECURSOR CURSOR LOCAL FOR SELECT SQL='IF EXISTS ( SELECT 1 FROM ['+ S.NAME + '].['+O.NAME+'] WHERE ['+C.NAME+'] LIKE [email protected]+'%'' ) PRINT ''所在的表及字段:['+O.NAME+'].['+C.NAME+']''' FROM SYSCOLUMNS C JOIN SYS.OBJECTS O ON C.ID=O.OBJECT_ID JOIN SYS.SCHEMAS S ON O.SCHEMA_ID = S.SCHEMA_ID WHERE S.NAME != 'SYS'  -- 175=CHAR 56=INT 可以查 SELECT * FROM SYS.TYPES AND O.XTYPE='U' AND C.STATUS>=0 AND C.XUSERTYPE IN (175, 239, 231, 167 ) /*把这个WHERE改下*/OPEN TABLECURSOR  FETCH NEXT FROM TABLECURSOR INTO @SQL WHILE @@FETCH_STATUS=0 BEGIN EXEC( @SQL ) FETCH NEXT FROM TABLECURSOR INTO @SQL END CLOSE TABLECURSOR
  相关解决方案