You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

为现有表rowguid列插入UNIQUEIDENTIFIER时出现列不允许空值错误

问题解决方法

你用的INSERT语句是用来新增一行数据的,但你的表中存在其他不允许为空的列,执行INSERT时没给这些列赋值,所以触发了非空约束报错。而你的需求是给表中已存在的所有行的rowguid列填充GUID值,正确的做法是使用UPDATE语句:

UPDATE [myschema].[mytablename] 
SET rowguid = NEWID()

这条语句会遍历表中每一行,给rowguid列生成一个唯一的GUID。

如果想让后续新增数据时,rowguid列自动生成GUID,可以给该列添加默认值,还可以根据业务需求把列设置为非空:

ALTER TABLE [myschema].[mytablename] 
ALTER COLUMN rowguid uniqueidentifier NOT NULL DEFAULT NEWID();

设置完成后,后续执行INSERT新增行时,即使不指定rowguid的值,数据库也会自动为该列生成唯一的GUID。

内容的提问来源于stack exchange,提问作者Mons

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.05 11:50:21