How can I search all columns in a table?

后端 未结 6 1433
天涯浪人
天涯浪人 2020-12-15 06:41

How can I search all columns of a table in SQL Server?

6条回答
  •  抹茶落季
    2020-12-15 07:01

    You can even do it this way.. Dynamically creating the query..

    SET NOCOUNT ON;
    
    DECLARE @searchText NVARCHAR(100) = 'Test'
    DECLARE @columnName NVARCHAR(100)
    DECLARE @tableName NVARCHAR(100) = 'Accounts'
    DECLARE @sql NVARCHAR(1000) = 'SELECT * FROM ' + @tableName +' WHERE '
    
    DECLARE columns CURSOR FOR
    SELECT sys.columns.name FROM sys.tables
    INNER JOIN sys.columns ON sys.columns.object_id = sys.tables.object_id
    WHERE sys.tables.name = @tableName
    
    OPEN columns
    FETCH NEXT FROM columns
    INTO @columnName
    
    WHILE @@FETCH_STATUS = 0
    
    BEGIN
    
        SET @sql = @sql + @columnName + ' LIKE ''%' + @searchText + '%'' OR '
        FETCH NEXT FROM columns
        INTO @columnName    
    
    END
    
    CLOSE columns;    
    DEALLOCATE columns;
    
    SET @sql = LEFT(RTRIM(@sql), LEN(@sql) - 2)
    
    EXEC(@sql)
    

提交回复
热议问题