2016-09-05 14 views
0

私はチュートリアルやその他のstackoverflowの回答を読んできましたが、これを動作させることはできません。私は次のスクリプトを実行していると私は取得し続けます。Sql Server Bulk一時テーブル構文エラーへの挿入

USE my_db 
GO 

DECLARE @TempTable TABLE (
insz nvarchar(max), 
firstname nvarchar(max), 
middlename nvarchar(max), 
lastname nvarchar(max), 
birthdate date, 
street nvarchar(max), 
streetnumber nvarchar(max), 
mailbox nvarchar(max), 
city nvarchar(max), 
zipcode nvarchar(max) 
) 
GO 

BULK INSERT @TempTable 
FROM 'C:\Workspaces\magdasync\src\main\examples\my_file.csv' 
WITH 
(FIELDTERMINATOR = ',', 
ROWTERMINATOR = '\n') 
GO 

メッセージ102、レベル15、状態1、行2 付近に正しくない構文 '@TempTable'。

+1

'BULK'文の前に' GO'を削除します。表変数は、そのスコープ内でのみ表示されます。また、あなたはテーブル変数に挿入することができないことが判明:http://stackoverflow.com/questions/14113820/whats-wrong-with-this-sql-statement-for-table-variable-bulk-insert –

+0

よく終わった今すぐ別のエラーで別のエラーが発生しました メッセージレベル102、レベル15、状態1、行15 '@TempTable'の近くの構文が正しくありません。 メッセージ319、レベル15、状態1、行17 'with'キーワードの構文が正しくありません。この文が共通テーブル式、xmlnamespaces句または変更追跡コンテキスト句である場合、前の文はセミコロンで終了する必要があります。 – kenny

答えて

2

テーブル変数に一括挿入することはできません。あなたは一時テーブルを使用することができます。

USE magdasync 
    GO 

CREATE Table #TempTable(
insz nvarchar(max), 
firstname nvarchar(max), 
middlename nvarchar(max), 
lastname nvarchar(max), 
birthdate date, 
street nvarchar(max), 
streetnumber nvarchar(max), 
mailbox nvarchar(max), 
city nvarchar(max), 
zipcode nvarchar(max) 
) 
GO 

BULK INSERT #TempTable 
FROM 'C:\Workspaces\magdasync\src\main\examples\magdasync_input_example.csv' 
WITH 
(FIELDTERMINATOR = ',', 
ROWTERMINATOR = '\n') 
GO 
+0

廃止予定の廃止予定の古い回答がいくつかありますが、原因はもう確実に働いていません – kenny

関連する問題