欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

SQLSERVER查询一条数据在哪张表里的哪个字段

程序员文章站 2022-03-11 09:00:54
...

转载一下当做个笔记
转载的原文

创建这个存储过程

CREATE PROCEDURE [dbo].[SP_FindValueInDB]

(

    @value VARCHAR(1024)

) 

AS

BEGIN

    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

exec SP_FindValueInDB ’数据的值’

相关标签: sqlserver