Sqlserver
 sql >> Datenbank >  >> RDS >> Sqlserver

SQL:Suche nach einer Zeichenfolge in jeder varchar-Spalte in einer Datenbank

Unter Verwendung der hier gefundenen Technik generiert das folgende Skript SELECTs für alle ((n)var)char-Spalten in der gegebenen Datenbank. Kopieren Sie die Ausgabe, fügen Sie sie ein, entfernen Sie das allerletzte 'union' und führen Sie sie aus. Sie müssen FEHLERHAFTE HIER durch die gesuchte Zeichenfolge ersetzen

select 
'select distinct ''' + tab.name + '.' + col.name 
+ '''  from [' + tab.name 
+ '] where [' + col.name + '] like ''%MISSPELLING HERE%'' union ' 
from sys.tables tab 
join sys.columns col on (tab.object_id = col.object_id)
join sys.types types on (col.system_type_id = types.system_type_id) 
where tab.type_desc ='USER_TABLE' 
and types.name IN ('CHAR', 'NCHAR', 'VARCHAR', 'NVARCHAR');