我有一個包含100個表的數據庫。 我怎麼知道哪個表包含特定的文本。哪個表包含此數據+ SQL
例如該表中包含文本「假定壽命聲明」
我可以給一個暗示,這是申請一個varchar
SQL SERVER 2008
我有一個包含100個表的數據庫。 我怎麼知道哪個表包含特定的文本。哪個表包含此數據+ SQL
例如該表中包含文本「假定壽命聲明」
我可以給一個暗示,這是申請一個varchar
SQL SERVER 2008
ypercube的建議是完全正確的。這裏是一個實現:
DECLARE @searchText VARCHAR(100)
SET @searchText = 'Assumed Life Claims'
DECLARE @sqlText VARCHAR(8000)
DECLARE @MaxId INT
DECLARE @CurId INT
DECLARE @possibleColumns TABLE (Id INT IDENTITY(1, 1) NOT NULL PRIMARY KEY
,sqlText VARCHAR(8000))
INSERT INTO @possibleColumns(sqlText)
SELECT 'IF EXISTS (SELECT * FROM ' + c.TABLE_NAME + ' WHERE ' + c.COLUMN_NAME + ' = ''' + @searchText + ''') PRINT '' searchText=' + @searchText + ' was found in ' + c.TABLE_NAME + '.' + c.COLUMN_NAME + ''''
FROM INFORMATION_SCHEMA.COLUMNS c
-- Using hint that this field is a varchar
WHERE c.DATA_TYPE = 'varchar'
SELECT @CurId = MIN(pc.Id)
,@MaxId = MAX(pc.Id)
FROM @possibleColumns pc
WHILE (@CurId <= @MaxId)
BEGIN
SELECT @sqlText = pc.sqlText
FROM @possibleColumns pc
WHERE pc.Id = @CurId
-- For testing (uncomment)
--PRINT @sqlText
EXEC(@sqlText)
-- Increment counter
SET @CurId = @CurId + 1
END
這給出了一些錯誤 – 2012-02-11 17:47:10
謝謝..... http://vyaskn.tripod.com/search_all_columns_in_all_tables.htm謝謝大家 – 2012-02-11 18:02:49
我從http://beyondrelational.com/blogs獲得了此鏈接/naomi/archive/2010/10/29/how-to-search-a-string-value-in-all-columns-in-the-table-and-in-all-tables-in-the-database.aspx – 2012-02-11 18:04:46
SQL-Server,MySQL,Postgres,Oracle,SQLite,...?哪個DBMS? – 2012-02-11 17:07:57
我知道關於mssql中的CONTAINSTABLE可能是其他全文搜索功能在其他數據庫 – 2012-02-11 17:08:23
一次或通常? – danihp 2012-02-11 17:10:10