附近有语法错误 ' - ' ' - '(微软SQL服务器本机客户端。(Microsoft SQL Server本机客户端10.0)
虽然做SSIS的工作我在创建表的查询附近有语法错误 ' - ' ' - '(微软SQL服务器本机客户端。(Microsoft SQL Server本机客户端10.0)
附近有语法错误得到了一个错误10.0)
SQL语句:
CREATE TABLE Staging_ACD_Precision_Queue
(
PrecisionQueueID int,
BucketIntervalID int,
EnterpriseName varchar(32),
AgentOrdering int,
CallOrdering int,
Description varchar(255),
ServiceLevelThreshold int,
ServiceLevelType smallint,
ForceExpandingQueue varchar(1),
Deleted varchar(1),
ChangeStamp int,
Partner varchar(4),
Center varchar(4),
Partner-Center varchar(9),
LOB varchar(4),
Circle varchar(4),
TypeOfBusiness varchar(4)
)
我尝试了上面的查询。我从错误信息中猜出,问题出在Partner-Center varchar(9)
,但是我没能解决这个错误。由于我是SSIS和SQL查询的新手,我不知道要解决这个问题。
你需要把周围Partner-Center
,例如方括号[Partner-Center]
。在字段名称中不允许使用嵌入的空格或特殊字符,但可以通过将字段名称放在方括号内将其转义。
CREATE TABLE Staging_ACD_Precision_Queue (
PrecisionQueueID int,
BucketIntervalID int,
EnterpriseName varchar(32),
AgentOrdering int,
CallOrdering int,
Description varchar(255),
ServiceLevelThreshold int,
ServiceLevelType smallint,
ForceExpandingQueue varchar(1),
Deleted varchar(1),
ChangeStamp int,
Partner varchar(4),
Center varchar(4),
[Partner-Center] varchar(9),
LOB varchar(4),
Circle varchar(4),
TypeOfBusiness varchar(4)
)
正如其他人在这里说,我也想推荐你避免使用的字段名连字符,并用Partner_Center
或PartnerCenter
作为字段名称,而不是Partner-Center
去。
+1,正确的,你需要方括号'[Partner-Center] varchar(9)',但我建议你避免名称中包含任何特殊字符。我们的命名标准可以防止任何特殊字符。此外,这个列看起来很奇怪,像前面两列('Partner varchar(4),Center varchar(4)'),这是否有可能是冗余组合数据?没有通过我的嗅觉测试。 – 2014-10-10 19:30:31
@KM我希望不会,因为它比合作伙伴和中心的合并长度少一个字符。 – Donal 2014-10-10 19:35:55
@Donal可能是因为他们之间有'-' ;-) – Lamak 2014-10-10 19:52:15
SQL Server不允许-
在裸露的字段名称中。但是,您可以用方括号([]
)周围字段名“越狱”吧:
CREATE TABLE Staging_ACD_Precision_Queue (
PrecisionQueueID int,
BucketIntervalID int,
EnterpriseName varchar(32),
AgentOrdering int,
CallOrdering int,
Description varchar(255),
ServiceLevelThreshold int,
ServiceLevelType smallint,
ForceExpandingQueue varchar(1),
Deleted varchar(1),
ChangeStamp int,
Partner varchar(4),
Center varchar(4),
[Partner-Center] varchar(9),
LOB varchar(4),
Circle varchar(4),
TypeOfBusiness varchar(4)
)
为什么downvote? – Mureinik 2015-03-04 15:47:42
你能举出SQL Server 2008的这些信息吗(因为OP指的是SNC 10.0?我只能在SQL Server 2016中找到这个信息。 – 2017-03-03 21:20:58
你不能有“ - ”中列名。你可以做下划线。但不是减号。
其实你可以,但是你必须为[]周围列名以短线创建,每次您要访问你不得不[VAR]
变化
Partner-Center varchar(9),
是
Partner_Center varchar(9),
或
[Partner-Center] varchar(9)
您需要使用方括号:'[Partner-Center]' – Lamak 2014-10-10 19:16:37
AFIK在SSIS中我们不能使用方括号,这是主要问题。我也尝试了方括号。 – Sathiya 2014-10-10 19:18:03
为什么不按照其余字段的命名约定称之为PartnerCenter? – Namrehs 2014-10-10 19:18:40