我有一个关于插入表格的代码,例如:
Insert Into MyTable(PropertyName,PropertyID)
values('PropertyName1', (if exists(select 1 from PropertyTable where propertyName='PropertyName1') return null
else
insert into PropertyTable(Name) values('PropertyName1')
return scope_Identity()))
我的问题就在那里:
insert into PropertyTable(Name) values('PropertyName1')
return scope_Identity()
如果我的行不存在于我的表中,我首先需要在表中插入新值,然后返回ID以便在上面的插入中使用。 但我不知道怎么做?
答案 0 :(得分:1)
我不知道您的代码是否完全正常,但使用 scope_identity 的替代解决方案是输出子句。
试试这个并告诉我是否有效:
Insert Into MyTable (PropertyName,PropertyID) values('PropertyName1',
(if exists(select 1 from PropertyTable where propertyName='PropertyName1')
return null
else
insert into PropertyTable(Name)
output inserted.nameOfYourIDColumn
values('PropertyName1')));