sysname to wbudowany typ danych ograniczony do 128 znaków Unicode, który, IIRC, jest używany głównie do przechowywania nazw obiektów podczas tworzenia skryptów. Jego wartość nie może być NULL
Zasadniczo jest to to samo, co użycie nvarchar(128) NOT NULL
EDYTUJ
Jak wspomniał @Jim w komentarzach, nie sądzę, aby istniał przypadek biznesowy, w którym użyłbyś sysname szczerze mówiąc. Jest używany głównie przez Microsoft podczas budowania wewnętrznego sys tabele i procedury składowane itp. w SQL Server.
Na przykład, wykonując Exec sp_help 'sys.tables' zobaczysz, że kolumna name jest zdefiniowany jako sysname dzieje się tak, ponieważ wartość tego jest w rzeczywistości obiektem samym w sobie (tabela)
Nie martwiłbym się tym zbytnio.
Warto również zauważyć, że dla tych osób, które nadal używają SQL Server 6.5 i niższych (czy są jeszcze osoby, które go używają?) wbudowany typ sysname jest odpowiednikiem varchar(30)
Dokumentacja
sysname jest zdefiniowany w dokumentacji nchar i nvarchar , w sekcji uwag:
nazwa systemu to dostarczony przez system typ danych zdefiniowany przez użytkownika, który jest funkcjonalnie równoważny nvarchar(128) , z tą różnicą, że nie ma wartości null. nazwa systemu służy do odwoływania się do nazw obiektów bazy danych.
Aby wyjaśnić powyższe uwagi, domyślnie nazwa systemu jest zdefiniowany jako NOT NULL z pewnością można go zdefiniować jako dopuszczający wartość null. Należy również zauważyć, że dokładna definicja może się różnić w zależności od instancji SQL Server.
Korzystanie ze specjalnych typów danych
nazwa systemu typ danych jest używany dla kolumn tabeli, zmiennych i parametrów procedury składowanej, które przechowują nazwy obiektów. Dokładna definicja sysname dotyczy zasad dotyczących identyfikatorów. Dlatego może się różnić między instancjami SQL Server. nazwa systemu jest funkcjonalnie taki sam jak nvarchar(128) z wyjątkiem tego, że domyślnie sysname NIE JEST NULL. Wcześniejsze wersje SQL Server, sysname jest zdefiniowany jako varchar(30).
Więcej informacji o sysname zezwalanie lub blokowanie NULL wartości można znaleźć tutaj https://stackoverflow.com/a/52290792/300863
Tylko dlatego, że jest to ustawienie domyślne (nie jest NULL) nie gwarantuje, że tak będzie!