2013-02-14 90 views
0

我正在尝试将CS​​V导入到SQL中。 CSV是非常大的4克,所以这真的是查询数据的唯一选择,我相信。CREATE TABLE给出错误4145和102

我已经到了创建新数据库的地步,现在正在尝试创建将保存信息的表。

我已经运行以下命令:

CREATE TABLE Provider_NPI 
(NPI INT, 
Entity Type Code INT, 
Replacement NPI INT, 
Employer Identification Number (EIN) INT, 

的INT后,它继续了超过300个加标题,但有一个`味精4145,级别15,状态1,行上三个不同的人错误X'错误。我列出了出来

Error: 
Msg 102, Level 15, State 1, Line 5 
Incorrect syntax near 'Code'. 

对于此行:Replacement NPI INT,

高于此线是Entity Type Code INT,

Error: 
Msg 4145, Level 15, State 1, Line 29 
An expression of non-boolean type specified in a context where a condition is expected, near 'U'. 

这条线:Provider Business Mailing Address Telephone Number VARCHAR(75),

Error: 
Provider Business Practice Location Address Telephone Number VARCHAR(75), 

此行:Provider Business Practice Location Address Telephone Number VARCHAR(75),

任何人都可以帮我确定什么是错的?我相信这可能与一些标题名称有关?

+3

你被允许在这样的列名中有空格吗?在这种情况下,标识符周围是否需要括号? – bernie 2013-02-14 20:58:00

+0

我是一个SQL的总noob,所以我猜你的意思是.. [实体类型代码] INT, – jjones312 2013-02-14 21:04:05

+0

是的,这正是我的意思。 – bernie 2013-02-14 21:06:48

回答

4

列名中可以有空格(和parens),但只有当您将它们放在括号中时。

CREATE TABLE Provider_NPI 
(NPI INT, 
[Entity Type Code] INT, 
[Replacement NPI] INT, 
[Employer Identification Number (EIN)] INT) 
+0

安思引用(使用'“')应该是首选甚至更好:。使用,不需要引用列名 – 2013-02-14 21:56:55

+0

有时候很不错的‘格式化’的名字我个人喜欢用[]里对这种类型。的,因为这是在SQL Server中一个相当标准语法的事情。[]用于任何非文字基本上秒。 – 2013-02-14 22:01:58

0

伯尼帮着解决了这个人,但我碰到的与CSV文件中的其他问题,并已在度假,所以我回来目前正在努力解决。

我已经成功创建了数据库和表,其中包含具有正确数据类型和长度集的所有列标题。即varchar(50)或INT ..我现在遇到的问题是从CSV文件导入数据。它给我的味精4868错误,我指出的问题与批量插入我试图使用和双引号围绕所有的数据。

正如我所说,有300多列标题和100,000 +行。所有数据,数字,字符串和日期都用双引号“”括起来。它看起来像一个格式文件是需要的,我正在创建过程中,但遇到的问题与指令在http://support.microsoft.com/default.aspx?scid=kb;EN-US;132463

数据看起来像“1231231”,“名称1”,“地址”,“邮编“,”“555-555-5555”,“”,“”,“第2个地址”,“传真”,“”,“”

数据继续,有些字段的数据被包围,引号。该文章指出使用虚拟行删除引号,我可以但它似乎需要大量手动编辑格式文件创建后。

有没有办法创建格式文件,这将允许我使用它来删除导入数据时的双引号?我不知所措,真的很想解决这个问题。

+0

我应该开始一个新的职位,如果是的话对不起张贴一个答案.. – jjones312 2013-02-23 03:13:53

+0

是的,我会创建一个新帖子 – 2013-02-23 14:33:31