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

Откуда:
Сообщений: 1
Здравствуйте, столкнулся с такой проблемой. Мне необходимо создать составные ключи таблиц, в которые входят поля с разными типами данных. Однако, только поля с типом text при выборе столбцов не отображаются в выпадающем списке.. Может кто-то объяснить почему так и как решить данную проблему?
15 фев 21, 14:05    [22281106]     Ответить | Цитировать Сообщить модератору
 Re: Почему в состав уникального составного ключа не входит поле с типом данных text?  [new]
msLex
Member

Откуда:
Сообщений: 8700
nosqlll
Здравствуйте, столкнулся с такой проблемой. Мне необходимо создать составные ключи таблиц, в которые входят поля с разными типами данных. Однако, только поля с типом text при выборе столбцов не отображаются в выпадающем списке.. Может кто-то объяснить почему так и как решить данную проблему?


Никак.

И об этом написано в справке

https://docs.microsoft.com/en-us/sql/t-sql/statements/create-index-transact-sql?view=sql-server-ver15
Columns that are of the large object (LOB) data types ntext, text, varchar(max), nvarchar(max), varbinary(max), xml, or image cannot be specified as key columns for an index
15 фев 21, 14:12    [22281109]     Ответить | Цитировать Сообщить модератору
 Re: Почему в состав уникального составного ключа не входит поле с типом данных text?  [new]
Ролг Хупин
Member

Откуда: Чебаркуль
Сообщений: 3970
nosqlll
Здравствуйте, столкнулся с такой проблемой. Мне необходимо создать составные ключи таблиц, в которые входят поля с разными типами данных. Однако, только поля с типом text при выборе столбцов не отображаются в выпадающем списке.. Может кто-то объяснить почему так и как решить данную проблему?


SQL Server 2005?
15 фев 21, 14:44    [22281140]     Ответить | Цитировать Сообщить модератору
 Re: Почему в состав уникального составного ключа не входит поле с типом данных text?  [new]
Glebanski
Member

Откуда: Msk ->NL
Сообщений: 319
https://docs.microsoft.com/en-us/sql/t-sql/statements/create-index-transact-sql?view=sql-server-ver15
Columns that are of the large object (LOB) data types ntext, text, varchar(max), nvarchar(max), varbinary(max), xml, or image cannot be specified as key columns for an index
[/quot]

Во-во... подумайте об этом, когда будете лепить все строковые поля как (max)
Кроме того, сам тип данных text уже устарел
15 фев 21, 19:56    [22281343]     Ответить | Цитировать Сообщить модератору
 Re: Почему в состав уникального составного ключа не входит поле с типом данных text?  [new]
Владислав Колосов
Member

Откуда:
Сообщений: 8314
Длина ключа имеет ограничение, LOB поля не гарантируют, что этот размер не будет превышен, поэтому априори исключаются. Способ хранения LOB также накладывает ограничение.

Проблема просто решается - используйте суррогатные целочисленные ключи, используйте нумератор строк в качестве первичного ключа и наложите ограничение на изменение текстового поля, которое определяется этим ключом. В этом случае гарантируете, что заданный ключ будет всегда указывать на один и тот же текст.
15 фев 21, 23:22    [22281402]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить