如何在此文本文件中创建SQL表?

时间:2012-05-31 15:03:58

标签: sql-server sql-server-2008

我正在尝试使用SQL在数据库中创建表。数据当前位于文本文件中,看起来像this,但有数千行。

我的麻烦主要在于“CREATE TABLE”功能的参数。有没有办法说我想要所有的列?现在代码看起来像:

CREATE TABLE dbo.CFTC_Fin_Data
(

)

BULK INSERT dbo.CFTC_Fin_Data
    FROM 'H:\user\Desktop\CFTCData1.txt' 
    WITH 
    ( 
        FIELDTERMINATOR = ',', 
        ROWTERMINATOR = '\n' 
    );

感谢您的帮助。我对SQL很陌生,所以如果已经回答了类似的问题我会道歉,但我无法理解我读过的任何答案。

3 个答案:

答案 0 :(得分:0)

您的数据文件中有4列,您必须指定它们:

CREATE TABLE dbo.CFTC_Fin_Data
(
column_name1 data_type,
column_name2 data_type,
column_name3 data_type,
column_name4 data_type
)

(插入适当的列名和数据类型)

答案 1 :(得分:0)

嗯,你必须查看你的文件,看看你在每个领域有什么样的信息。

使用文件中的行,似乎

Field1是一个字符串(3个字符,在其他行中可能更多)? => NVARCHAR(100)

Field2是一个字符串(xx char)=> NVARCHAR(255)

Field3是DATE => DATE

Field4似乎是各种各样的东西=> NVARCHAR(100)

类似

CREATE TABLE dbo.CTFC_Fin_Data (
column1 NVARCHAR(100),
column2 NVARCHAR(255),
column3 DATE,
column4 NVARCHAR(100)
)

但您需要检查所有文件以找到真正正确的值和数据类型

编辑:

事实上,您真的需要使用代码吗?

导致导出向导的原因(在SQL Server Management Studio中),您可以导入数据文件,如果需要,向导可以为您创建表。

尝试:

右键单击您的数据库名称, =>任务  =>导入数据

并按照向导进行操作。

如果需要,您还可以保存SSIS包。

认为这对你更合适!

答案 2 :(得分:0)

只是添加到上面发布的答案,如果你不限制使用Bulk insert,那么你可以使用openrowset。使用Openrowset的优点是你可以将值插入到动态创建的表中。由于列数不同,你可以尝试使用以下语法

 SELECT * INTO newTable

 FROM OPENROWSET(...)