DataAdapter Update()需要自动增量主键列的输入参数

时间:2009-12-14 12:53:35

标签: sql-server tsql ado parameters

在将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值不会使用数据库创建的正确值进行更新。

1 个答案:

答案 0 :(得分:1)

尝试

SELECT @PK_Column = SCOPE_IDENTITY()

这样,您可以将局部变量@PK_Column指定为参数。

执行... AS '@PK_Column'时,如果要为本地var / parameter @PK_Column @PK_Column”的列的数据集>

注意:... AS @PK_Column会失败,因为这是列别名。您依赖的设置允许'@PK_Column'成为有效的别名,而@PK_Column将失败