22,209
社区成员
发帖
与我相关
我的任务
分享
--先插入 STAUS = 0
INSERT INTO table1 (DATA, STAUS) VALUES (@data, 0)
--取得ID
SET @seq_id = @@IDENTITY
--如果存在其他相同DATA的记录,更改 STAUS = 1
UPDATE SET STAUS = 1
FROM table1
WHERE SEQ_ID = @seq_id
AND EXISTS (SELECT *
FROM table1 t
WHERE t.DATA = @data
AND t.SEQ_ID <> @seq_id
)
using (SqlConnection conn = new SqlConnection(strConn))
{
using (SqlCommand cmd = new SqlCommand(strSQL, conn))
{
cmd.CommandType = cmdType;
if (paras != null)
{
cmd.Parameters.AddRange(paras);
}
conn.Open();
ret = cmd.ExecuteNonQuery();
}
}
ALTER PROCEDURE [dbo].[insertInstallData]
-- Add the parameters for the stored procedure here
@data nvarchar(40),
@status int
AS
BEGIN
SET XACT_ABORT ON
BEGIN TRAN
DECLARE @seq_id int
--Insert data to table with status
INSERT INTO [dbo].[App_Setup_List]
([DATA],[STATUS]
VALUES
(@data, @status);
--Modify the status from 0 to 1, if have the same records.
IF @status = 0
BEGIN
--get seq_id
SET @seq_id = @@IDENTITY
--update status to 1 if have the same item
UPDATE [dbo].[App_Setup_List]
SET [STATUS] = 1
WHERE SEQ_ID = @seq_id
AND EXISTS (SELECT * FROM XXX tab
WHERE tab.DATA= @data AND tab.SEQ_ID <> @seq_id)
END
--Commit the tran
COMMIT TRAN
END