首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用存储过程将DataTable值插入或更新到数据库表中

使用存储过程将DataTable值插入或更新到数据库表中
EN

Stack Overflow用户
提问于 2014-08-13 09:23:04
回答 1查看 2K关注 0票数 0

我有一个表Cars如下:

此表将在C#应用程序的网格中读取。应用程序可以编辑或删除或添加新行。更新后的网格将在datatable中作为参数传递给存储过程。

我想开发一个以@typeCars作为输入的存储过程。

现在,应该在Cars表中更新已编辑的列,删除已删除的列,并添加新的列。

请让我知道如何在存储过程中实现这一点。

我的尝试:

代码语言:javascript
复制
CREATE PROC sp_updateDataTable (@dtTypeCars dtTypeCars READONLY)
AS 
BEGIN
   BEGIN TRY
      DECLARE @dbMaxCarIdval INT;
      DECLARE @typeCurrentCarIdVal INT;

      SELECT TOP 1 @dbMaxCarIdval = id FROM Cars ORDER BY id DESC

      IF (@dbMaxCarIdval >= (SELECT id FROM @dtTypeCars))
      BEGIN
          UPDATE Cars 
          SET Model = (SELECT Model FROM @dtTypeCars), 
              Company = (SELECT Company FROM @dtTypeCars)
          WHERE id = (SELECT id FROM @dtTypeCars);
      END
 END TRY
 BEGIN CATCH
     PRINT 'I am in Catch';
 END CATCH
END

请注意,dtTypeCars是一个类型如下

代码语言:javascript
复制
CREATE TYPE dtTypeCars AS TABLE
(
 id INT NOT NULL,
 Model varchar(50),
 Company varchar(50)
)
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-08-13 09:32:51

使用合并语句更新、插入和删除数据http://technet.microsoft.com/en-in/library/bb522522(v=sql.105).aspx

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

https://stackoverflow.com/questions/25282583

复制
相关文章

相似问题

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