2014-10-10 16 views
3

Хотя делать SSIS работу, я получил сообщение об ошибке в моей создания таблицы запросаНеправильный синтаксис около '-'. (Microsoft SQL Server Native Client 10.0)

Неправильный синтаксис около '-' (Microsoft SQL Server Native Client. 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-запросах, я не знаю, чтобы исправить эту проблему.

enter image description here

+3

вам нужно использовать квадратные скобки: '[Partner-Center]' – Lamak

+0

AFIK В SSIS мы не можем использовать квадратные скобки, это основная проблема. Я также попытался с квадратными скобками. – Sathiya

+3

Почему бы не следовать соглашению об именах для остальных полей и назвать его PartnerCenter? – Namrehs

ответ

9

Вам нужно поставить квадратные скобки, например 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.

+3

+1, правильно, вам нужны квадратные скобки '[Partner-Center] varchar (9)', но я бы рекомендовал вам избегать имен с любыми специальными символами в них. Наш стандарт именования предотвращает любые специальные символы. Кроме того, этот столбец выглядит странно похожим на предыдущие два столбца ('Partner varchar (4), Center varchar (4)'), возможно ли это избыточные комбинированные данные? не проходит мой тест на запах. –

+0

@KM Надеюсь, что нет, потому что это один символ меньше, чем объединенная длина Партнера и Центра. – Donal

+1

@Donal Вероятно, потому что между ними есть '-' ;-) – Lamak

2

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) 
) 
+0

Почему downvote? – Mureinik

+0

Можете ли вы привести эту информацию для SQL Server 2008 (поскольку OP относится к SNC 10.0? Я только смог найти это для SQL Server 2016. –

2

Вы не можете иметь «-» в именах столбцов. вы можете сделать подчеркивание. но не минус знаки.

На самом деле вы можете, однако вы должны [] вокруг имени столбца, чтобы создать с тиром и каждый раз, когда вы хотите получить доступ, вы должны [вар]

Изменения

Partner-Center varchar(9), 

быть

Partner_Center varchar(9), 

или

[Partner-Center] varchar(9) 
Смежные вопросы