это простой способ сделать это на основе таблицы.просто передайте процессу имена таблиц.Вы также можете сделать родственный процесс для цикла имен таблиц мыслей и вызывать этот процесс внутри цикла while для работы с каждой таблицей в логике цикла.
CREATE PROC setNullFields
(@TableName NVARCHAR(100))
AS
CREATE TABLE #FieldNames
(
pk INT IDENTITY(1, 1) ,
Field NVARCHAR(1000) NULL
);
INSERT INTO #FieldNames
SELECT column_name FROM INFORMATION_SCHEMA.COLUMNS WHERE TABLE_NAME = @TableName
DECLARE @maxPK INT;
SELECT @maxPK = MAX(PK) FROM #FieldNames
DECLARE @pk INT;
SET @pk = 1
DECLARE @dynSQL NVARCHAR(1000)
WHILE @pk <= @maxPK
BEGIN
DECLARE @CurrFieldName NVARCHAR(100);
SET @CurrFieldName = (SELECT Field FROM #FieldNames WHERE PK = @pk)
-- update the field to null here:
SET @dynSQL = 'UPDATE ' + @TableName + ' SET ' + @CurrFieldName + ' = NULLIF('+ @CurrFieldName+ ', '''' )'
EXEC (@dynSQL)
SELECT @pk = @pk + 1
END