> 데이터 베이스 > MySQL 튜토리얼 > 查看数据库中的字段所在的表中或某值所在的表和字段

查看数据库中的字段所在的表中或某值所在的表和字段

WBOY
풀어 주다: 2016-06-07 14:58:24
원래의
1570명이 탐색했습니다.

查看数据库中的字段所在的表中或某值所在的表和字段 ***********************************字段在哪个表中 select tab.name table_name, col.name column_name from sysobjects tab left join syscolumns col on tab.id = col.id and tab.xtype = U where col

查看数据库中的字段所在的表中或某值所在的表和字段

 

***********************************字段在哪个表中

select tab.name table_name, col.name column_name

  from sysobjects tab

  left join syscolumns col on tab.id = col.id and tab.xtype = 'U'

 where col.name like '%fkfz10000003%'  order by 1,2

 

*************************************查询整个数据库中某个特定值所在的表和字段的方法

 

通过做一个存储过程,只需要传入一个想要查找的值,即可查询出这个值所在的表和字段名。前提是要将这个存储过程放在所查询的数据库。

 

CREATE PROCEDURE [dbo].[SP_FindValueInDB]

(

    @value VARCHAR(1024)

)        

AS

BEGIN

    -- SET NOCOUNT ON added to prevent extra result sets from

    -- interfering with SELECT statements.

SET NOCOUNT ON;

DECLARE @sql VARCHAR(1024) 

DECLARE @table VARCHAR(64) 

DECLARE @column VARCHAR(64) 

 

CREATE TABLE #t ( 

    tablename VARCHAR(64), 

    columnname VARCHAR(64) 

 

DECLARE TABLES CURSOR 

FOR 

 

    SELECT o.name, c.name 

    FROM syscolumns c 

    INNER JOIN sysobjects o ON c.id = o.id 

    WHERE o.type = 'U' AND c.xtype IN (167, 175, 231, 239) 

    ORDER BY o.name, c.name 

 

OPEN TABLES 

 

FETCH NEXT FROM TABLES 

INTO @table, @column 

 

WHILE @@FETCH_STATUS = 0 

BEGIN 

    SET @sql = 'IF EXISTS(SELECT NULL FROM [' + @table + '] ' 

    SET @sql = @sql + 'WHERE RTRIM(LTRIM([' + @column + '])) LIKE ''%' + @value + '%'') ' 

    SET @sql = @sql + 'INSERT INTO #t VALUES (''' + @table + ''', ''' 

    SET @sql = @sql + @column + ''')' 

 

    EXEC(@sql) 

 

    FETCH NEXT FROM TABLES 

    INTO @table, @column 

END 

 

CLOSE TABLES 

DEALLOCATE TABLES 

 

SELECT * 

FROM #t 

 

DROP TABLE #t 

 

End

 

例如,要查询‘admin’,新建一个查询输入

 

EXEC SP_FindValueInDB 'admin'

会返回相应记录,Tablename显示被查询数据所在表,Columnname显示被查询数据所在

원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
최신 이슈
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿