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

Откуда: Саратов
Сообщений: 426
Именованные индексы в табличных типах создать несложно:
CREATE TYPE tableType1 AS TABLE(
C1 INT INDEX IX1 NONCLUSTERED,
C2 INT INDEX IX2 NONCLUSTERED,
       INDEX IX3 NONCLUSTERED(C1,C2) 
PRIMARY KEY NONCLUSTERED (С1 DESC),
UNIQUE CLUSTERED (С2 DESC)
);


Также как и неименованные первичные и уникальные ключи.
1. А можно ли создать неименованный индекс? И нужно ли?)
Я спрашиваю потому, что помню, что при использовании временных таблиц в хранимках важно было делать первичные ключи неименованными, чтобы не возникало исключений при параллельных вызовах. На индексы во временных таблицах это правило не распространялось.

2. А что с переменными табличного типа при параллельных вызовах - нужно ли делать первичные, уникальные ключи и индексы неименованными?
8 ноя 19, 16:46    [22012488]     Ответить | Цитировать Сообщить модератору
 Re: Индексы в табличных типах  [new]
Владимир Затуливетер
Member

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

1. В документации имя индекса обязательно.
https://docs.microsoft.com/en-us/sql/t-sql/statements/create-type-transact-sql?view=sql-server-ver15
Имя индекса локальное, т.е. мы можем использовать одно имя индекса в разных табличных типах.
В сессиях тоже конфликтов нет, т.к. мы создаем экземпляр типа т.е. переменную, а не временную таблицу.

2. А для unique/primary key/check имя не задается солгасно той же документации.
8 ноя 19, 22:05    [22012622]     Ответить | Цитировать Сообщить модератору
 Re: Индексы в табличных типах  [new]
Шамиль Фаридович
Member

Откуда: Саратов
Сообщений: 426
Владимир Затуливетер,
спасибо!
10 ноя 19, 23:44    [22013162]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить