2016-08-30 24 views
0

私はASP.NET MVC 5を使用してWebサイトを作成していますが、今はデータベースを作成する必要があります。私はVisual Studio 2015を使用して、新しいデータベースプロジェクトを作成しました。データベースはSQL Server 2016プラットフォームです。 .csvファイルからデータを取り出してデータベースに格納しようとしていますが、SQLファイルにエラーが発生します。SQL Serverにcsvの問題を埋め込む

CREATE TABLE [dbo].[TestTable] 
(
    [Id] INT NOT NULL PRIMARY KEY, 
    [FirstName] NVARCHAR(50) NULL, 
    [LastName] NVARCHAR(50) NULL, 
    [BirthDate] SMALLDATETIME NULL 
) 
GO 

BULK INSERT TestTable 
FROM 'C:\Users\ajs2987\Documents\projects\TestData.csv' 
WITH 
(
    FIELDTERMINATOR = ',', 
    ROWTERMINATOR = '\n' 
) 
GO 

-- Check the content of the table 
SELECT * 
FROM TestTable 

私は取得していますエラーがBULKSELECT文である:

SQL700001:この文は、このコンテキストでは認識されません。

は、私も自分の画面にエラーの画像を添付しました:任意の助けをいただければ幸いです

DBERROR

が、私はこれ以上の詳細を供給できるなら、私に知らせてください。

ありがとうございます!

+0

http://blog.sqlauthority.com/2008/02/06/sql-server-import-csv-file-into-sql-server-using-bulk-insert-load-comma-delimited-file -into-sql-server/ – MethodMan

+0

[this](https://arcanecode.com/2013/03/28/ssdt-error-sql70001-this-statement-is-not-recognized-in-this-context/)を参照してください。 –

+0

こんにちは@MethodMan、迅速な対応に感謝します。私もこのチュートリアルに続きましたが、残念ながら私はまだ同じエラーで会いました。 – ans

答えて

0

スクリプトのプロパティを確認します。ビルドアクションが "ビルド"に設定されている場合、データ定義言語としてコードを実行しようとしますが、スクリプトにはテーブルにデータを挿入するための言語が含まれています。それを "none"に設定する必要があります。

-1

データベースの定義とデータ変更のステートメントが混在していますが、大きな変更はありません。 BULK INSERTステートメントとSELECTステートメントを、データベースで「ビルド」されていない別のファイルに移動する必要があります。

次に、このファイルをデプロイメント後のスクリプトとして参照できます(または手動で実行するだけでも可能です)。

例については、https://www.infoq.com/articles/SSDT-Introの「導入前スクリプトと導入後スクリプト」を参照してください。

0

例としてスクリプトを試しましたが、それは私のためにうまくいきました。

CREATE TABLE [dbo].[STAGING] 
(
     [Date] VARCHAR(MAX), 
     Type VARCHAR(MAX), 
     Change VARCHAR(MAX), 
     SP_ID VARCHAR(MAX), 
     Sedol VARCHAR(MAX), 
     Cusip VARCHAR(MAX) 
) 
    bulk insert dbo.STAGING 
    from 'C:\Documents and Settings\Desktop\YOUR_DATA.txt' 
    WITH 
    (
    FIRSTROW = 2, 
    FIELDTERMINATOR = ',', 
    ROWTERMINATOR = '\n' 
) 
    GO 
    INSERT INTO dbo.FINAL 
    SELECT 
     [Date] = CASE WHEN ISDATE([Date])=1 THEN CAST([Date] AS DATETIME) ELSE NULL END, 
     Type, 
     Change, 
     SP_ID, 
     Sedol, 
     Cusip 
    FROM [dbo].[STAGING] 

ファイルがコンマで区切られていることを確認してください。また、ファイルの先頭またはファイルの最後に特殊文字がないことを確認してください。 Notepad ++で確かめてみてください。場合によってはCSVを見るときに特殊文字を見ることができないことがあります。 :)

関連する問題