我有一个表Cars如下:

此表将在C#应用程序的网格中读取。应用程序可以编辑或删除或添加新行。更新后的网格将在datatable中作为参数传递给存储过程。
我想开发一个以@typeCars作为输入的存储过程。
现在,应该在Cars表中更新已编辑的列,删除已删除的列,并添加新的列。
请让我知道如何在存储过程中实现这一点。
我的尝试:
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是一个类型如下
CREATE TYPE dtTypeCars AS TABLE
(
id INT NOT NULL,
Model varchar(50),
Company varchar(50)
)发布于 2014-08-13 09:32:51
使用合并语句更新、插入和删除数据http://technet.microsoft.com/en-in/library/bb522522(v=sql.105).aspx
https://stackoverflow.com/questions/25282583
复制相似问题