2013-07-05 4 views
1

здесь мой SQL заявление, и я получаю Error 170 Incorrect syntax near ',' at line 4SQL 170 в вставной заявлении

INSERT INTO SEO_Permalink_Test 
(IDObjekt ,IDType ,IDLanguage ,StateSEOName ,StateSEOPermalink ,DatumErstellungSEOName ,DatumLetzteAenderungSEOName ,SEOName) 
VALUES 
(19988 , 72 , 1 , 0 , 0 , GETDATE() , GETDATE() , 'H_KDA1559_ST_004'), 
(19989 , 72 , 1 , 0 , 0 , GETDATE() , GETDATE() , 'H_KDA1559_FS_003') , 
(19997 , 72 , 1 , 0 , 0 , GETDATE() , GETDATE() , 'H_CAU0171_WO_015') , 
(19998 , 72 , 1 , 0 , 0 , GETDATE() , GETDATE() , 'H_KDA1559_ST_003') , 
(19999 , 72 , 1 , 0 , 0 , GETDATE() , GETDATE() , 'H_KDA1559_FS_001') , 
(20001 , 72 , 1 , 0 , 0 , GETDATE() , GETDATE() , 'H_ILI0758_AU_007') , 
(20002 , 72 , 1 , 0 , 0 , GETDATE() , GETDATE() , 'H_ILI0758_PO_011') , 
(20003 , 72 , 1 , 0 , 0 , GETDATE() , GETDATE() , 'H_ILI0758_RS_008') , 
(20004 , 72 , 1 , 0 , 0 , GETDATE() , GETDATE() , 'H_CIT0550_WO_002') , 
(20005 , 72 , 1 , 0 , 0 , GETDATE() , GETDATE() , 'H_CIT0550_WO_003') , 
(20006 , 72 , 1 , 0 , 0 , GETDATE() , GETDATE() , 'H_CIT0550_TR_001') , 
(20007 , 72 , 1 , 0 , 0 , GETDATE() , GETDATE() , 'H_CIT0550_RS_001') , 
(20008 , 72 , 1 , 0 , 0 , GETDATE() , GETDATE() , 'H_CSL0152_AU_001') 
+0

, какая версия SQL Server, который вы используете? Я копирую ваш код и работаю в SQL Server 2008 –

+0

Какую версию SQL Server вы используете? Несколько «VALUES» были добавлены только в 2008 году. –

+0

См. [Здесь] (http://blog.sqlauthority.com/2008/07/02/sql-server-2008-insert-multiple-records-using-one-insert- statement-use-of-row-constructor /) для более подробной информации. –

ответ

0

Я предполагаю, что SQL Server 2005 или ниже

От: http://msdn.microsoft.com/en-us/library/ms174335%28v=sql.100%29.aspx

SQL Server 2008 представляет конструктор строк Transact-SQL (также называемый конструктором значения таблицы), чтобы указать несколько строк в одном объявлении INSERT. Конструктор строк состоит из одного предложения VALUES с несколькими списками значений, заключенных в круглые скобки, и , разделенных запятой. Для получения дополнительной информации см. Табличное значение Конструктор (Transact-SQL).

2

Вы не можете выполнить многорядные вставки в SQL Server ранее чем 2008. у вас есть два способа сделать это :

INSERT INTO SEO_Permalink_Test 
(IDObjekt ,IDType ,IDLanguage ,StateSEOName ,StateSEOPermalink ,DatumErstellungSEOName ,DatumLetzteAenderungSEOName ,SEOName) 
SELECT 19988 , 72 , 1 , 0 , 0 , GETDATE() , GETDATE() , 'H_KDA1559_ST_004' UNION ALL 
SELECT 19989 , 72 , 1 , 0 , 0 , GETDATE() , GETDATE() , 'H_KDA1559_FS_003' 
... 

Или

INSERT INTO SEO_Permalink_Test 
(IDObjekt ,IDType ,IDLanguage ,StateSEOName ,StateSEOPermalink ,DatumErstellungSEOName ,DatumLetzteAenderungSEOName ,SEOName) 
VALUES 
(19988 , 72 , 1 , 0 , 0 , GETDATE() , GETDATE() , 'H_KDA1559_ST_004') 

INSERT INTO SEO_Permalink_Test 
(IDObjekt ,IDType ,IDLanguage ,StateSEOName ,StateSEOPermalink ,DatumErstellungSEOName ,DatumLetzteAenderungSEOName ,SEOName) 
VALUES 
(19989 , 

Я бы с 1-го, как он менее подробный.

+1

На самом деле это называется «* Row Construction *», так как «BULK INSERT» является явной командой в T-SQL для импорта файла , и, следовательно, совершенно другая вещь. – RBarryYoung

+0

Я принимаю ваш комментарий, но заметьте, что я использовал термин «объемной вставки» не определенным образом или как команда, а не как описательный термин для ввода многострочной (навальной, на английском) вставки. – LittleSweetSeas

+1

Я согласен с @RBarryYoung - используя термин «Bulk Insert», когда это * конкретный * термин для другой функции * того же * продукта, в лучшем случае вводит в заблуждение. –

0

Просто синтаксическая проблема: для каждой записи необходимо иметь отдельный оператор вставки.

Другой вариант, который может добавить к читаемости, является структурирование заявление как следующий

INSERT INTO TableName(col1, col2, col3) 
     SELECT(a, b, c) 
    UNION SELECT(d, e, f) 
    UNION SELECT(g, h, i) 
+0

Пожалуйста, добавьте ключевое слово «ALL» в «UNION», чтобы избежать ненужных накладных расходов – LittleSweetSeas

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