Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/sql-server/25.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql server 用于插入的存储过程_Sql Server_Stored Procedures_Datatable_Syntax Error_Sql Insert - Fatal编程技术网

Sql server 用于插入的存储过程

Sql server 用于插入的存储过程,sql-server,stored-procedures,datatable,syntax-error,sql-insert,Sql Server,Stored Procedures,Datatable,Syntax Error,Sql Insert,我将一个datatable作为存储过程中的参数,并试图在一个数据库表中插入它的一些列,但我不知道正确的语法 这就是我尝试过的 ALTER PROCEDURE [dbo].[spInsertInvoice] @tblInvoice [TypeExcel] READONLY AS BEGIN SET NOCOUNT ON; INSERT into Invoice(InvoiceNo, InvoiceDate, CustomerName,[Subject], Referenc

我将一个
datatable
作为存储过程中的参数,并试图在一个数据库表中插入它的一些列,但我不知道正确的语法

这就是我尝试过的

ALTER PROCEDURE [dbo].[spInsertInvoice]
    @tblInvoice [TypeExcel] READONLY
AS
BEGIN
    SET NOCOUNT ON;

    INSERT into Invoice(InvoiceNo, InvoiceDate, CustomerName,[Subject], Reference)
    VALUES (SELECT Template, Invoice_No, InvoiceDate, Cust_Name,[Subject], Reference FROM @tblInvoice)
END

请指导我如何在表中正确插入值。

您需要采用select而不是值的insert形式:

insert into theTable (col1, col2, ...)
select col1, col2, ...
from ...
where...

select的所有功能都可用(列别名、分组、联接、子查询等)。

您需要采用select而不是值的insert形式:

insert into theTable (col1, col2, ...)
select col1, col2, ...
from ...
where...

select的所有功能都可用(列别名、分组、联接、子查询等)。

您需要采用select而不是值的insert形式:

insert into theTable (col1, col2, ...)
select col1, col2, ...
from ...
where...

select的所有功能都可用(列别名、分组、联接、子查询等)。

您需要采用select而不是值的insert形式:

insert into theTable (col1, col2, ...)
select col1, col2, ...
from ...
where...

select的所有功能都可用(列别名、分组、联接、子查询等)。

不起作用。使用这种形式的insert仍然不允许您使用变量来指定表名。@Guffa确实如此。可以直接在from子句中使用。我明白了,我假设它是一个表名。这不起作用。使用这种形式的insert仍然不允许您使用变量来指定表名。@Guffa确实如此。可以直接在from子句中使用。我明白了,我假设它是一个表名。这不起作用。使用这种形式的insert仍然不允许您使用变量来指定表名。@Guffa确实如此。可以直接在from子句中使用。我明白了,我假设它是一个表名。这不起作用。使用这种形式的insert仍然不允许您使用变量来指定表名。@Guffa确实如此。可以直接在from子句中使用。我明白了,我假设它是一个表名。