在将DataTable更新为SQL Server数据库时,我在调用GetErrors()后收到错误消息“Column'PK_Column'不允许空值” 我不想为PK_Column提供值,因为它是数据库中的自动增量主键列。我的insert语句如下所示:
INSERT INTO [Order] ([Customer_Id], [OrderTime], [OrderType])
VALUES(@Customer_Id, @OrderTime, @OrderType)
SELECT CAST(SCOPE_IDENTITY() AS int) AS '@PK_Column'
它在SQL Server Management Studio中按预期工作,因此查询显然不是问题。
我在insert命令上有四个参数,一个输出参数(@PK_Column
)和三个输入参数(@Customer_Id, @OrderTime, @OrderType)
。我发现,如果我将@PK_Column
设置为InputOutput参数,则不会收到错误,但是PK_Column
值不会使用数据库创建的正确值进行更新。
答案 0 :(得分:1)
尝试
SELECT @PK_Column = SCOPE_IDENTITY()
这样,您可以将局部变量@PK_Column指定为参数。
执行... AS '@PK_Column'
时,如果要为本地var / parameter @PK_Column
注意:... AS @PK_Column
会失败,因为这是列别名。您依赖的设置允许'@PK_Column'
成为有效的别名,而@PK_Column
将失败