0

Я принимаю 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 

Пожалуйста, руководство меня, как я могу правильно вставить значения в моей таблице.

ответ

3

Вам нужна форма вставки, которая принимает отборное, а чем значения:

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

Все функции отборное доступны (псевдонимы столбцов, группировка, соединения, подзапросы, ...).

+0

Это не работает. Использование этой формы вставки по-прежнему не позволяет вам использовать переменную для указания имени таблицы. – Guffa

+0

@Guffa. [Параметры таблицы данных] (https://msdn.microsoft.com/en-us/library/bb675163.aspx) можно использовать непосредственно в предложении from. – Richard

+0

Я вижу, я предположил, что это имя таблицы. – Guffa

Смежные вопросы