sysname
- это встроенный тип данных, ограниченный 128 символами Unicode, который, IIRC, используется в основном для хранения имен объектов при создании скриптов. Его ценность не может бытьNULL
Это в основном то же самое, что и использование nvarchar(128) NOT NULL
РЕДАКТИРОВАТЬ
Как отметил @Jim в комментариях, я не думаю, что есть действительно бизнес-кейс, который вы бы использовали, sysname
если честно. Он в основном используется Microsoft при создании внутреннегоsys
таблиц, хранимых процедур и т. Д. В SQL Server.
Например, выполнив, Exec sp_help 'sys.tables'
вы увидите, что столбец name
определен так, sysname
потому что значение this на самом деле является объектом (таблицей).
Я бы слишком беспокоился об этом.
Также стоит отметить, что для тех людей, которые все еще используют SQL Server 6.5 и ниже (есть ли еще люди, использующие его?), Встроенный тип sysname
является эквивалентомvarchar(30)
Документация
sysname
определяется в документации для nchar
иnvarchar
в разделе примечаний:
sysname - это определяемый системой тип данных, определяемый пользователем, который функционально эквивалентен nvarchar (128) , за исключением того, что он не допускает значения NULL. sysname используется для ссылки на имена объектов базы данных.
Чтобы прояснить приведенные выше замечания, по умолчанию sysname определено, так как NOT NULL
его можно определить как допускающее значение NULL. Также важно отметить, что точное определение может варьироваться в зависимости от экземпляра SQL Server.
Использование специальных типов данных
Тип данных sysname используется для столбцов таблицы, переменных и параметров хранимых процедур, в которых хранятся имена объектов. Точное определение
sysname связано с правилами для идентификаторов. Следовательно, он может варьироваться в зависимости от экземпляра SQL Server. sysname функционально такое же, как nvarchar (128), за исключением того, что по умолчанию sysname НЕ ПУСТО. В более ранних версиях SQL Server sysname определяется как varchar (30).
Дополнительную информацию о sysname
разрешении или запрещении NULL
значений можно найти здесь https://stackoverflow.com/a/52290792/300863
Тот факт, что это значение по умолчанию (НЕ NULL) не гарантирует, что это будет так!