Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Microsoft SQL Server Новый топик    Ответить
 Безымянный первичный ключ по нескольким полям  [new]
Шамиль Фаридович
Member

Откуда: Саратов
Сообщений: 445
Доброго времени суток!
Мне хотелось бы на временной таблице создать безымянный первичный ключ по нескольким полям,
что-то вроде
CREATE TABLE #t1
    (
        col1 int NOT NULL,
        col2 int NOT NULL, 
        CONSTRAINT  PRIMARY KEY CLUSTERED (col1, col2)
    )


Конечно я могу не заморачиваться, и создать уникальный кластеризованный индекс по этим полям,
но имеет ли синтаксическое решение вопрос из заголовка?
10 авг 17, 15:51    [20713944]     Ответить | Цитировать Сообщить модератору
 Re: Безымянный первичный ключ по нескольким полям  [new]
alexeyvg
Member

Откуда: Moscow
Сообщений: 30711
Шамиль Фаридович
Мне хотелось бы на временной таблице создать безымянный первичный ключ по нескольким полям,
что-то вроде
Так создайте, просто синтаксис не надо придумывать

CREATE TABLE #t1
    (
        col1 int NOT NULL,
        col2 int NOT NULL, 
        PRIMARY KEY CLUSTERED (col1, col2)
    )
10 авг 17, 15:54    [20713962]     Ответить | Цитировать Сообщить модератору
 Re: Безымянный первичный ключ по нескольким полям  [new]
o-o
Guest
CREATE TABLE #t1
    (
        col1 int NOT NULL,
        col2 int NOT NULL) ;
alter table #t1 add  PRIMARY KEY CLUSTERED (col1, col2);
10 авг 17, 15:56    [20713972]     Ответить | Цитировать Сообщить модератору
 Re: Безымянный первичный ключ по нескольким полям  [new]
Шамиль Фаридович
Member

Откуда: Саратов
Сообщений: 445
Спасибо!
10 авг 17, 16:16    [20714064]     Ответить | Цитировать Сообщить модератору
 Re: Безымянный первичный ключ по нескольким полям  [new]
iap
Member

Откуда: Москва
Сообщений: 46951
Шамиль Фаридович,

вот только безымянных констрейнтов и индексов не бывает!
10 авг 17, 19:21    [20714627]     Ответить | Цитировать Сообщить модератору
 Re: Безымянный первичный ключ по нескольким полям  [new]
LSV
Member [заблокирован]

Откуда: Киев
Сообщений: 30817
iap
Шамиль Фаридович,

вот только безымянных констрейнтов и индексов не бывает!
+500. Оно все равно сгененит какое-то имя.
11 авг 17, 12:35    [20716403]     Ответить | Цитировать Сообщить модератору
 Re: Безымянный первичный ключ по нескольким полям  [new]
o-o
Guest
да ладно ерничать, разумеется ТС хотел создать констрэйнт с уникальным именем,
чтобы в соседней сессии его же код не повалился бы с ошибкой, что такой ПК уже существует.
но для особо придирчивых перепишем вопрос так: "создать ПК на временной таблице, оставив его именование на откуп серверу"
11 авг 17, 12:45    [20716444]     Ответить | Цитировать Сообщить модератору
 Re: Безымянный первичный ключ по нескольким полям  [new]
iap
Member

Откуда: Москва
Сообщений: 46951
o-o
да ладно ерничать, разумеется ТС хотел создать констрэйнт с уникальным именем,
чтобы в соседней сессии его же код не повалился бы с ошибкой, что такой ПК уже существует.
но для особо придирчивых перепишем вопрос так: "создать ПК на временной таблице, оставив его именование на откуп серверу"
Можно просто создать уникальный индекс с красивым именем, - и никаких конфликтов с другими сессиями не будет.
Ибо индекс - это не объект БД. Для разных таблиц могут существовать индексы с одним и тем же именем.
11 авг 17, 13:10    [20716555]     Ответить | Цитировать Сообщить модератору
 Re: Безымянный первичный ключ по нескольким полям  [new]
o-o
Guest
iap
Можно просто создать уникальный индекс с красивым именем, - и никаких конфликтов с другими сессиями не будет.
Ибо индекс - это не объект БД. Для разных таблиц могут существовать индексы с одним и тем же именем.

можно и создать :)
итого, у ТС уже минимум 3 варианта
11 авг 17, 13:15    [20716579]     Ответить | Цитировать Сообщить модератору
 Re: Безымянный первичный ключ по нескольким полям  [new]
msLex
Member

Откуда:
Сообщений: 7726
o-o
ТС хотел создать констрэйнт с уникальным именем,
чтобы в соседней сессии его же код не повалился бы с ошибкой


[offtop]
Я однажды столкнулся с коллизией автогенерирумых имен PK на # таблицах
[/offtop]
11 авг 17, 13:18    [20716605]     Ответить | Цитировать Сообщить модератору
 Re: Безымянный первичный ключ по нескольким полям  [new]
o-o
Guest
msLex,
тогда тем более наверное лучше
iap
просто создать уникальный индекс с красивым именем
.
а то ПК "без имени" все горазды создавать, а вот уникальный индекс,
да еще со спец. именем, это вряд ли
11 авг 17, 13:21    [20716631]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить