Создание уникального столбца в SQL Azure Federation

Я пытаюсь создать уникальный столбец в SQL Azure Federation, но даже несмотря на то, что следующий запрос создает таблицу, я все равно могу сохранить записи в таблице с тем же значением Column1. Как правильно настроить уникальный столбец? Мне нужно убедиться, что ID является столбцом федеративного уникального идентификатора, тогда как для целей этой демонстрации столбец 1 не может иметь повторяющихся значений.

CREATE TABLE dbo.Table1(
        ID uniqueidentifier NOT NULL,
        Column1 nvarchar(50) NOT NULL,
        Column2 nvarchar(15) NULL,
 CONSTRAINT [PK_Table1] PRIMARY KEY CLUSTERED
 (
     ID ASC
 ),
CONSTRAINT [PK_Table2] UNIQUE NONCLUSTERED
 (
     ID ASC,
     Column1 ASC
 )
 ) FEDERATED ON ([dist] = ID)
 GO

person Mark13426    schedule 26.09.2012    source источник
comment
Не совсем понял вопрос. Не можете ли вы создать уникальное ограничение для Column1.   -  person Craig    schedule 26.09.2012
comment
Это был мой оригинальный вопрос некоторое время назад: stackoverflow.com/questions/12416925/ Это объясняет, что я пытаюсь сделать . По сути, столбец идентификатора должен быть первичным ключом, а столбец EMAIL_ADDRESS должен иметь уникальное значение.   -  person Mark13426    schedule 26.09.2012


Ответы (1)


Без тестирования вы не можете сделать это

CREATE TABLE dbo.Table1(
        ID uniqueidentifier NOT NULL,
        Column1 nvarchar(50) NOT NULL,
        Column2 nvarchar(15) NULL,
CONSTRAINT [PK_Table1] UNIQUE NONCLUSTERED
 (
     ID ASC,
     Column1 ASC
 )
 ) FEDERATED ON ([dist] = ID)
 GO

CREATE UNIQUE INDEX uix_table1_column1 ON Table1(Column1)
GO

Тогда у вас будет первичный ключ, охватывающий Федерацию, и отдельное уникальное ограничение.

person Craig    schedule 26.09.2012
comment
Это не работает. uix_table1_column1 не будет создан из-за следующей ошибки: Уникальный или кластеризованный индекс в объединенной таблице должен содержать объединенный столбец. Я попробовал это с ON Table1 (ID, Column1). Мне удалось создать таблицу, но я все еще мог сохранить повторяющиеся значения для столбца 1. - person Mark13426; 26.09.2012
comment
Обратите внимание, что столбец ID должен быть первичным ключом, тогда как столбец 1 должен иметь уникальные значения. Таким образом, в каждом столбце нельзя сохранять повторяющиеся значения. - person Mark13426; 26.09.2012
comment
Я бы сказал, что вам не повезло тогда. В любом случае я предпочитаю управлять такой уникальностью на прикладном уровне. - person Craig; 26.09.2012