結果セットを一時テーブルに保存しました。
Column_Name, Data_Type, Default_Value
Col1 varchar abc
Col2 varchar abc
Col3 int 999
Col4 decimal 0.0
Col5 datetime 20120101
次に、列名をテーブルの列名と比較し、一時テーブルのデータ型に基づいて、列値がNULLの場合は常にデフォルト値を割り当てるステートメントを作成する必要があります。
私にはそれを行う方法がわかりません
これは私が今までやってきたことです
CREATE TABLE #ColumnData (Column_Name varchar(500), Data_Type varchar(20),
Default_Value varchar(50))
DECLARE @query1 NVARCHAR(MAX) = ''
DECLARE @SchemaName VARCHAR(20)
DECLARE @TableName VARCHAR(50)
SET @SchemaName = 'dbo'
SET @TableName = 'tblCustomer'
select @query1 = @query1 + 'UPDATE ' + @schemaName + '.' + @tableName + ' SET ' +
c.COLUMN_NAME + ' = ' + c.Default_Value+ ' WHERE ' + c.COLUMN_NAME
+ ' = ''NULL'';' FROM #ColumnData c
WHERE C.TABLE_NAME = @tableName
EXECUTE sp_executesql @query1