gpt4 book ai didi

sql-server - SQL 服务器 : Convert nulls into values when inserting fails - can I force this?

转载 作者:行者123 更新时间:2023-12-01 00:32:08 25 4
gpt4 key购买 nike

我正在尝试向现有表中添加 NOT NULL 和 DEFAULT。

为此,我使用一个过渡表来填充任何 NULL 值。

Table1 有 NULL 列,Table2 有改进的设计。

CREATE TABLE table1 (
CustomerID INT
, CartID NULL);

CREATE TABLE table2 (
CustomerID INT
, CartID NOT NULL DEFAULT NEWID());

INSERT INTO table2 (CustomerID, CartID)
SELECT CustomerID, CartID = CASE CartID WHEN NULL THEN NEWID() ELSE CartID END
FROM table1;

即使我在 SELECT 语句中用新值填充每个 NULL 值,我仍然收到“无法将值 NULL 插入列”的错误。

我怎样才能让它工作?

最佳答案

SQL 中,NULL 不等于 NULL(也不是不相等)。

"Does a dog have Buddha-nature or not?"
"NULL"

这就是为什么 CASE var WHEN NULL THEN … 永远不会成功。

使用这个:

CASE WHEN CartID IS NULL THEN NEWID() ELSE CartID END

或者只是这样:

COALESCE(CartID, NEWID())

关于sql-server - SQL 服务器 : Convert nulls into values when inserting fails - can I force this?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4169736/

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