SQL Server更新?
我有一个包含以下列的表:SQL Server更新?,sql,sql-server,Sql,Sql Server,我有一个包含以下列的表: CID ContractNumber ContractName CompanyID 1 N/200 TAS 13 2 N/201 TAA 1 更新此表的存储过程 @id as int @cnum as nvarchar(50) @cname as nvarchar (50) @cp as int u
CID ContractNumber ContractName CompanyID
1 N/200 TAS 13
2 N/201 TAA 1
更新此表的存储过程
@id as int
@cnum as nvarchar(50)
@cname as nvarchar (50)
@cp as int
update contracts
set ContractNumber = @cnum,
ContractName = @cname,
CompanyID = @cp ,
where
CID = @id
当我仅在
contractnumber
列中更新时,不会提供输出@cname
,更新查询将终止。我猜您对ContractName
有非空
约束。如果不提供名称,则会违反约束
要解决此问题,请安排更新
,以便在新值为NULL时保留现有值:
update contracts
set ContractNumber = coalesce(@cnum, ContractNumber),
ContractName = coalesce(@cname, ContractName),
CompanyID = coalesce(@cp, CompanyID)
where CID = @id;
我猜您对ContractName
有notnull
约束。如果不提供名称,则会违反约束
要解决此问题,请安排更新
,以便在新值为NULL时保留现有值:
update contracts
set ContractNumber = coalesce(@cnum, ContractNumber),
ContractName = coalesce(@cname, ContractName),
CompanyID = coalesce(@cp, CompanyID)
where CID = @id;
您应该编辑问题并显示错误消息。另外,create table
语句可能会有所帮助。如果您说参数有时可能为空,请使用isnull()或coalseceprocesdure或函数“edit”或未提供的“@cname”,您应该编辑问题并显示错误消息。另外,create table
语句可能会有所帮助。如果您说参数有时可能为空,请使用isnull()或coalseceprodure或未提供的函数“edit”expect“@cname”