我在一个临时表上存储了一个结果集
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