Sql 但是我找不到。给我们更多的信息。展开您的问题,只需单击“编辑”并执行即可。;)我发誓我昨天看到了这个问题,但我找不到。给我们更多的信息。展开您的问题,只需单击“编辑”并执行即可。;)+1-我可以想象这样的情况:你可能在不止一列中有相同的值,但你是对的:它闻

Sql 但是我找不到。给我们更多的信息。展开您的问题,只需单击“编辑”并执行即可。;)我发誓我昨天看到了这个问题,但我找不到。给我们更多的信息。展开您的问题,只需单击“编辑”并执行即可。;)+1-我可以想象这样的情况:你可能在不止一列中有相同的值,但你是对的:它闻,sql,Sql,但是我找不到。给我们更多的信息。展开您的问题,只需单击“编辑”并执行即可。;)我发誓我昨天看到了这个问题,但我找不到。给我们更多的信息。展开您的问题,只需单击“编辑”并执行即可。;)+1-我可以想象这样的情况:你可能在不止一列中有相同的值,但你是对的:它闻起来像糟糕的设计。当然当问题如此基本时,这种情况的风险就更高了。这里的代码气味表明rmeador指出了什么……您的数据库的结构是否适合您使用它所做的工作?我有时不得不对具有大量字段的大型机系统运行查询,其中字段名是随机的八个字符串。+1-我可以


但是我找不到。给我们更多的信息。展开您的问题,只需单击“编辑”并执行即可。;)我发誓我昨天看到了这个问题,但我找不到。给我们更多的信息。展开您的问题,只需单击“编辑”并执行即可。;)+1-我可以想象这样的情况:你可能在不止一列中有相同的值,但你是对的:它闻起来像糟糕的设计。当然当问题如此基本时,这种情况的风险就更高了。这里的代码气味表明rmeador指出了什么……您的数据库的结构是否适合您使用它所做的工作?我有时不得不对具有大量字段的大型机系统运行查询,其中字段名是随机的八个字符串。+1-我可以想象您可能在多个列中具有相同的值,但您是对的:它闻起来像糟糕的设计。当然,当问题如此基本时,发生这种情况的风险就更高了。这里的代码气味表明rmeador指出了什么……您的数据库的结构是否适合您使用它所做的工作?我有时不得不对具有大量字段的大型机系统运行查询,其中字段名是随机的8个字符串。
/*This script will find any text value in the database*/
/*Output will be directed to the Messages window. Don't forget to look there!!!*/

SET NOCOUNT ON
DECLARE @valuetosearchfor varchar(128), @objectOwner varchar(64)
SET @valuetosearchfor = '%staff%' --should be formatted as a like search 
SET @objectOwner = 'dbo'

DECLARE @potentialcolumns TABLE (id int IDENTITY, sql varchar(4000))

INSERT INTO @potentialcolumns (sql)
SELECT 
    ('if exists (select 1 from [' +
    [tabs].[table_schema] + '].[' +
    [tabs].[table_name] + 
    '] (NOLOCK) where [' + 
    [cols].[column_name] + 
    '] like ''' + @valuetosearchfor + ''' ) print ''SELECT * FROM [' +
    [tabs].[table_schema] + '].[' +
    [tabs].[table_name] + 
    '] (NOLOCK) WHERE [' + 
    [cols].[column_name] + 
    '] LIKE ''''' + @valuetosearchfor + '''''' +
    '''') as 'sql'
FROM information_schema.columns cols
    INNER JOIN information_schema.tables tabs
        ON cols.TABLE_CATALOG = tabs.TABLE_CATALOG
            AND cols.TABLE_SCHEMA = tabs.TABLE_SCHEMA
            AND cols.TABLE_NAME = tabs.TABLE_NAME
WHERE cols.data_type IN ('char', 'varchar', 'nvchar', 'nvarchar','text','ntext')
    AND tabs.table_schema = @objectOwner
    AND tabs.TABLE_TYPE = 'BASE TABLE'
ORDER BY tabs.table_catalog, tabs.table_name, cols.ordinal_position

DECLARE @count int
SET @count = (SELECT MAX(id) FROM @potentialcolumns)
PRINT 'Found ' + CAST(@count as varchar) + ' potential columns.'
PRINT 'Beginning scan...'
PRINT ''
PRINT 'These columns contain the values being searched for...'
PRINT ''
DECLARE @iterator int, @sql varchar(4000)
SET @iterator = 1
WHILE @iterator <= (SELECT Max(id) FROM @potentialcolumns)
BEGIN
    SET @sql = (SELECT [sql] FROM @potentialcolumns where [id] = @iterator)
    IF (@sql IS NOT NULL) and (RTRIM(LTRIM(@sql)) <> '')
    BEGIN
        --SELECT @sql --use when checking sql output
        EXEC (@sql)
    END
    SET @iterator = @iterator + 1
END

PRINT ''
PRINT 'Scan completed'