Sql Insert into select子查询返回的值超过1
我有以下代码,当表Sql Insert into select子查询返回的值超过1,sql,sql-server,insert-into,Sql,Sql Server,Insert Into,我有以下代码,当表@ListaDeProducto有超过1行时,它会给我一个错误。有什么想法吗 insert into Solicitud_Plastico_Interna_Detalle( IDSolicitud_Plastico_Interna ,IDTipo_Producto ,Cantidad_Solicitada ,Create_User ,Cre
@ListaDeProducto
有超过1行时,它会给我一个错误。有什么想法吗
insert into Solicitud_Plastico_Interna_Detalle(
IDSolicitud_Plastico_Interna
,IDTipo_Producto
,Cantidad_Solicitada
,Create_User
,Create_Date
,Contingencia
,Total
)
select
@IdSolicitud
,IDTipo_Producto
,Cantidad_Requerida
,@USUARIO
,getdate()
,Contingencia
,Total
from @ListaDeProducto
表架构
CREATE TYPE [ListaProductoTableType2] AS TABLE
(
IDTipo_Producto int,
Tipo_Producto varchar(1000),
Cantidad_Requerida int,
Contingencia int ,
Total int,
IdSolicitud_batch varchar(100)
)
GO
我敢打赌桌子上一定有扳机 那么,为什么不尝试创建一个新表来证明这个查询可以处理多行呢
CREATE TABLE Solicitud_Plastico_Temporal AS (
select
@IdSolicitud as IDSolicitud_Plastico_Interna
,IDTipo_Producto
,Cantidad_Requerida
,@USUARIO as Create_User
,getdate() as Create_Date
,Contingencia
,Total
from @ListaDeProducto
)
表上可能有错误的insert触发器。表上可能有INEART的触发器,这是写错的。触发器按语句工作,而不是按行工作。这意味着插入的表可以容纳多行,因为数据库中没有任何触发器。很重要的一点是,我正在从.NET应用程序调用一个过程,这个过程以及其他程序都有以下代码,主键是什么?。在我看来,你可能是在复制它。因为你没有子查询,而且你在评论中说你没有任何触发器,在你给我们的代码中,我怀疑你看到的错误代码部分是错误的。