我已经为此痛苦了两个小时了。我想选择或插入一条记录。如果记录存在,则选择他的 ID,否则将其插入并获取新插入的 ID。现在我正在尝试运行它,但仍然出现错误
SELECT CASE WHEN (SELECT COUNT(*) FROM Domains WHERE Domain = @domain)>0
THEN
(SELECT Domain_ID FROM Domains WHERE Domain = @domain)
ELSE
INSERT INTO Domains(Domain_ID,Domain,Disabled,Description) VALUES(@Domain_ID,@Domain,@Disabled,@Description);
您的案件缺少结尾
Case when (something) then (Some)
else (another thing) end
无论如何,您的 else 必须返回选择,插入不会返回任何内容。
如果要插入(如果不存在)然后返回插入的值(或返回(如果存在))
做这个:
INSERT INTO Domains(Domain_ID,Domain,Disabled,Description) VALUES(@Domain_ID,@Domain,@Disabled,@Description) where not exists (select 1 from Domains WHERE Domain = @domain);
SELECT Domain_ID FROM Domains WHERE Domain = @domain
如果不存在则插入,然后返回。如果已经存在则不插入,并返回值
2016 年 1 月编辑
最后一个查询将不起作用MySql
, 它是一个MSSQL
syntax
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)