gpt4 book ai didi

sql - 试图在 sql server 中将 'NULL' 的所有字符串值更新为 NULL

转载 作者:行者123 更新时间:2023-11-30 23:57:46 25 4
gpt4 key购买 nike

我有一个从 csv 文件导入的数据库表,其中包含 NULL ,因此当它被导入而不是字段为 NULL 时,它们包含字符串值 'NULL'

CSV 文件太大,无法在文本编辑器中打开以编辑所有 NULL,因此我尝试创建 SQL 查询来更新表的每一列。

到目前为止我有这个

Alter PROCEDURE [dbo].[sp_fixnulls]
@column nvarchar(100)
AS
BEGIN
SET NOCOUNT ON;
UPDATE my_table
SET @column=''
WHERE @column = 'NULL'
END

---------------

sp_fixnulls (SELECT column_name FROM INFORMATION_SCHEMA.COLUMNS WHERE TABLE_NAME ='my_table')

但这不起作用。我收到错误消息

Msg 201, Level 16, State 4, Procedure sp_fixnulls, Line 0
Procedure or function 'sp_fixnulls' expects parameter '@column', which was not supplied.

最佳答案

@column 是一个变量。它不能动态地将其内容换出到 SQL 中。您需要使用 TSQL 来完成此操作,从而将 SQL 生成为字符串然后执行它。如:

DECLARE @sql VARCHAR(MAX)
SET @sql = '
UPDATE my_table
SET ' + @column + '=''''
WHERE ' + @column + ' = ''NULL''
'

EXEC (@sql) -- don't forget the parentheses

需要注意的是,我的代码将该列设置为空字符串,这与 NULL 不同。我使用了您现有的示例。如果你想要NULL,那么
SET ' + @column + '= NULL

关于sql - 试图在 sql server 中将 'NULL' 的所有字符串值更新为 NULL,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14511444/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com