我有一個查詢。我有一個名稱和ID作爲列的數據庫表中。它在該表中有22行包含信息。使用Microsoft SQL Server將整個表保存到數據庫
現在,我得到這些數據並顯示在用戶界面上。用戶可以添加新行,刪除任何行並保存表。
一旦用戶點擊保存,我希望整個表替換已經存在的表。這是通過存儲過程執行的。
整個數據庫表首先被刪除並保存新的條目。
然而,有時會出現這種情況,如果我添加3-4行並保存它,數據庫將被刪除,但新增的22行+新增3行不會在表中更新。
有人能告訴我一個簡單的方法來替換表?
PS。表格中沒有唯一的ID。所以我無法更新行。我只需要刪除整個事物並保存新的表格行。
存儲過程:
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
ALTER PROCEDURE [DATABASE1].[sp_usertable]
(@in_params AS XML)
AS
BEGIN
DELETE FROM dbo.usertable;
SELECT
T.x.value('./Name[1]','varchar(25)') as [Name] ,
T.x.value('./ID[1]','varchar(6)') as [ID] ,
INTO
#Temp
FROM
@in_params.nodes('/ArrayOfData/Data') as T(x);
BEGIN TRANSACTION
INSERT INTO [dbo].[usertable] (Name, ID)
SELECT Name, ID
FROM #Temp T
COMMIT TRANSACTION
DROP TABLE #Temp;
END
是這個微軟的SQL服務器或[mysql](http://www.mysql.com/)? –
@ JeffPuckettII-微軟sql服務器。 – Patrick
@patrick你刪除整個表的原因是什麼?爲什麼現在插入/更新/刪除表中的行 – Hiten004