无法绑定Temp表多部分标识符。

时间:2018-01-22 19:04:49

标签: sql sql-server dapper

我在c#中创建一个像这样的查询:

create table #IdentityPerson (Id int)
insert into [IdentityPerson] (...)
output inserted.Id into #IdentityPerson
values (...)

create table #Identity (Id int)
insert into [Identity] (PersonId,...)
output inserted.Id into #Identity
values (#IdentityPerson.id,...)

create table #IdentityState (Id int)
create table #IdentityCity (Id int)
insert into [IdentityState] (...)
output inserted.Id into #IdentityState
values (...)
insert into [IdentityCity] (StateId,...)
output inserted.Id into #IdentityCity
values (#IdentityState.id,...)

insert into [IdentityAddress] (CityId,IdentityId,...)
values (#IdentityCity.id,#Identity.id,...)

drop table #IdentityCity
drop table #IdentityState
drop table #Identity
drop table #IdentityPerson

当我使用Dapper.net(ExecuteAsync)运行此查询时,我收到一些SqlException错误:

  

无法绑定多部分标识符“#IdentityPerson.id”。   无法绑定多部分标识符“#IdentityState.id”。该   多部分标识符“#IdentityCity.id”无法绑定。该   多部分标识符“#Identity.id”无法绑定。

有人帮忙吗?

1 个答案:

答案 0 :(得分:1)

我认为您正在寻找insert . . . select

create table #Identity (Id int);

insert into [Identity] (PersonId,...)
    output inserted.Id into #Identity
    select ip.id, . . .
    from #IdentityPerson ip;