Ошибка в синтаксисе при создании UNIQUE INDEX в MS SQl

335
02 мая 2017, 03:41

Пытаюсь создать уникальный индекс который формируется на основании данных из нескольких столбцов БД. Но возникают синтаксические ошибки при описании таблицы. Вот код таблицы:

CREATE TABLE [dbo].[People_list] (
    [GUID]   UNIQUEIDENTIFIER NOT NULL DEFAULT NEWID(),
    [№]      NVARCHAR(50)     NOT NULL,
    [ФИО]    NVARCHAR (60)    NOT NULL
    PRIMARY KEY CLUSTERED ([№] ASC));
    CREATE UNIQUE INDEX [indx] ON [People_list] ([ФИО] ASC, [№] **ASC);**
**);**

В местах помеченных жирным шрифтом visual studio пишет следующую ошибку: incorrect syntax near ";" (в первом случае) и ")" (во втором).

Как исправить эти ошибки? Спасибо за ответ.

Answer 1

Последняя скобка и точка с запятой не нужны. Выражение create table завершено этой парой символов перед выражением create index.

Давайте слегка отформатируем приведённый код:

CREATE TABLE [dbo].[People_list] (
    [GUID]   UNIQUEIDENTIFIER NOT NULL DEFAULT NEWID(),
    [№]      NVARCHAR(50)     NOT NULL,
    [ФИО]    NVARCHAR (60)    NOT NULL
    PRIMARY KEY CLUSTERED ([№] ASC)
);
CREATE UNIQUE INDEX [indx] ON [People_list] ([ФИО] ASC, [№] ASC);

Вот так правильно.

READ ALSO
SmtpClient и Port для иностранной рассылки

SmtpClient и Port для иностранной рассылки

Какие Smtp и порты можно использовать для отправки сообщений между разными странами? Имеет ли значение выбор учетной записи если нужно отправить...

254
Создание рубрик программно

Создание рубрик программно

Допустим в цикле создаются записи, и нужно сразу в этом же цикле назначать новым записям рукрики

255
Передача переменных в json

Передача переменных в json

Есть задача вернуть из бд несколько значений по одному IDКак превратить переменные из БД в JSON формат? или как лучше сделать? Пример кода

288