Как найти все столбцы, содержащие строку и нуль?

Моя цель – написать сценарий SQL Server (если это имеет значение в 2008 R2), который выводит все значения во всех таблицах, где имя столбца содержит «Квалификаторы».

Например, таблица A содержит столбцы с надписью «TemperatureQualifiers» и «SalinityQualifiers». Для всех строк в этой таблице эти значения должны иметь значение null. Также есть несколько других таблиц с колонками с похожими именами.

Это приведет к созданию операторов обновлений для вас. Вы можете расширить это, чтобы выполнить их как динамический SQL или просто вырезать / вставить результаты в другое окно запроса SSMS и запустить их.

select 'update [' + s.name + '].[' + t.name + '] set [' + c.name + '] = NULL' from sys.columns c inner join sys.tables t on c.object_id = t.object_id inner join sys.schemas s on t.schema_id = s.schema_id where c.name like '%Qualifiers%' and t.type = 'U' 

Бит поздно на этом. Это создаст скрипт, который объединяет обновления, в которых есть несколько столбцов в одной и той же таблице для обновления.

 DECLARE @Script nvarchar(MAX); SET @Script = ''; WITH Cols AS ( SELECT c.object_id, c.name, schema_name(t.schema_id) AS SchemaName, t.name AS TableName FROM sys.columns c INNER JOIN sys.tables t ON c.object_id = t.object_id WHERE c.name LIKE '%Qualifiers%' AND is_computed=0 AND is_rowguidcol=0 AND is_identity=0 AND is_nullable=1 AND objectproperty(c.object_id, N'IsUserTable')=1 ) , Tables AS ( SELECT DISTINCT object_id, TableName, SchemaName FROM Cols ) , Statements AS ( SELECT 'UPDATE ' + QUOTENAME(SchemaName) + '.' + QUOTENAME(TableName) + ' SET ' + STUFF( ( SELECT ',' + c.name + '=NULL' FROM Cols c WHERE c.object_id = t.object_id FOR XML PATH('') ) , 1, 1, '') AS Statement FROM Tables t ) SELECT @Script = @Script + ' ' +Statement FROM Statements SELECT @Script AS [processing-instruction(x)] FOR XML PATH('') 
Давайте будем гением компьютера.