我有一個名爲dbo.authors的表,並且希望將此表中的所有空字段更新爲空字符串。 (基本上與此完全相反:How can I update all empty string fields in a table to be null?)如何更新表中的所有NULL字段以清空字符串SQL Server 2008
我試過這個,我得到一個'命令成功'的消息,但它不會將空字段更新爲空字符串。
CREATE PROC resetNullFields
(@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 null to empty string here:
SET @dynSQL = 'UPDATE ' + @TableName + ' SET ' + @CurrFieldName + ' ='' '' where' + @CurrFieldName + '= null'
EXEC (@dynSQL)
SELECT @pk = @pk + 1
END
exec resetNullFields authors;
go
數字和日期列怎麼樣?你有沒有這些,如果是的話,你想在那裏放什麼? –
在您的UPDATE語句中,WHERE子句之後需要一個SPACE。 – abhi
我想在日期或數字列中放置一個空白空間(如果可能的話) – Eric