首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >DataAdapter更新()需要自动增量主键列的输入参数

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

Stack Overflow用户
提问于 2009-12-14 20:53:35
回答 1查看 796关注 0票数 0

在将列更新到SQL Server数据库时,我在调用GetErrors()后收到错误消息“DataTable ' PK_Column‘not allow nulls”。我不想为PK_Column提供值,因为它是数据库中的自动增量主键列。我的insert语句如下所示:

代码语言:javascript
代码运行次数:0
运行
复制
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值不会使用数据库创建的正确值进行更新。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2009-12-14 20:57:43

试一试

代码语言:javascript
代码运行次数:0
运行
复制
SELECT @PK_Column = SCOPE_IDENTITY()

这样,您将赋值给局部变量@PK_Column,该变量将被作为参数提取。

当您执行... AS '@PK_Column'时,当您想要为本地var/参数@PK_Column赋值时,您正在创建一个包含一个名为"@PK_Column“的列的数据集

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

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/1900759

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档