我有一个简单的表格,包含以下内容
TABLE Color(
Color_id int IDENTITY(1,1) NOT NULL PRIMARY KEY,
Coloring_type [varchar](20) NULL,
ColorA int NOT NULL,
ColorB int NULL,
ColorC int NULL)
我想执行以下查询以插入一些数据并返回 Inserted Color_id 以在 C# 中执行一些操作
INSERT INTO Color OUTPUT INSERTED.Color_id
VALUES ('solid' ,'red' ,'green' ,'blue')
无论如何,事实上,这样的插入可能会在再次插入相同的值时使数据重复,所以我想进行一个查询,如果它是新的则插入数据并输出插入的id或输出相同的id如果数据已经插入到表中,我应该对查询进行哪些更改?
最佳答案
你可以试试下面的,
IF EXISTS (SELECT Color_id
FROM Color
WHERE Coloring_type = 'solid' AND ColorA = 'red' AND
ColorB = 'green' AND ColorC = 'blue')
BEGIN
SELECT Color_id
FROM Color
WHERE Coloring_type = 'solid' AND ColorA = 'red' AND
ColorB = 'green' AND ColorC = 'blue'
END
ELSE
BEGIN
INSERT INTO Color OUTPUT INSERTED.Color_id
VALUES ('solid' ,'red' ,'green' ,'blue')
SELECT SCOPE_IDENTITY() --THIL WILL RETURN THE NEWLY ADDED Color_id
END
关于SQL输出插入的新数据的id或如果没有插入重复则输出id,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24531653/