无法绑定SQL Server查询多部分标识符

时间:2013-06-09 16:39:30

标签: sql sql-server

我正在尝试使用来自同一服务器上两个不同数据库的两个表的数据来填充表。

insert into emsoluciones.dbo.incoming (volumen, fechaini, fechafin, placa, nombreconductor, pk_consecventa)
   select 
       volumen, fechaini, fechafin, placa, nombreconductor, ventacliente.pk_consecventa
   from 
       estacion.dbo.venta, estacion.dbo.ventacliente
   where 
       venta.pk_consecventa = ventacliente.pk_consecventa 
       and ventacliente.pk_consecventa != emsoluciones.dbo.incoming.pk_consecventa

它有效,但如果我想再次更新信息,它会在表格中添加所有数据,所以我添加:ventacliente.pk_consecventa != incoming.pk_consecventa

但它给了我错误

  

多部分标识符incoming.pk_consecventa无法绑定

学生在这里,谢谢

1 个答案:

答案 0 :(得分:1)

如果要使用要插入的表中的字段排除项目,则需要在查询中加入该表。应该是这样的:

insert into emsoluciones.dbo.incoming (volumen, fechaini, fechafin, placa, nombreconductor, pk_consecventa)
   select 
       volumen, fechaini, fechafin, placa, nombreconductor, ventacliente.pk_consecventa
   from estacion.dbo.venta
   JOIN estacion.dbo.ventacliente 
        ON  venta.pk_consecventa = ventacliente.pk_consecventa 
   LEFT JOIN emsoluciones.dbo.incoming.pk_consecventa
        ON ventacliente.pk_consecventa = emsoluciones.dbo.incoming.pk_consecventa
   WHERE emsoluciones.dbo.incoming.pk_consecventa IS NULL

您还必须为所有字段添加表别名,因为您正在加入包含所有这些字段的表。