2016-08-30 2 views
0

ASP.NET MVC 5를 사용하여 웹 사이트를 만들고 있는데 지금 데이터베이스를 만들어야합니다. Visual Studio 2015를 사용하여 새 데이터베이스 프로젝트를 만들었습니다. 데이터베이스는 SQL Server 2016 플랫폼입니다. .csv 파일에서 데이터를 가져 와서 데이터베이스에 저장하려고하지만 SQL 파일에 오류가 발생합니다.csv에서 SQL Server 채우기

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를 볼 때 특수 문자를 볼 수없는 경우도 있습니다. :)

관련 문제