sysname
ist ein integrierter Datentyp, der auf 128 Unicode-Zeichen beschränkt ist und in IIRC hauptsächlich zum Speichern von Objektnamen beim Erstellen von Skripten verwendet wird. Sein Wert kann nicht seinNULL
Es ist im Grunde das gleiche wie mit nvarchar(128) NOT NULL
BEARBEITEN
Wie von @Jim in den Kommentaren erwähnt, glaube ich nicht, dass es wirklich einen Business Case gibt, in dem Sie sysname
ehrlich sein würden. Es wird hauptsächlich von Microsoft beim Erstellen der internen sys
Tabellen und gespeicherten Prozeduren usw. in SQL Server verwendet.
Wenn Sie beispielsweise ausführen, sehen Exec sp_help 'sys.tables'
Sie, dass die Spalte name
so definiert sysname
ist, weil der Wert davon tatsächlich ein Objekt an sich ist (eine Tabelle).
Ich würde mir zu viele Sorgen machen.
Es ist auch erwähnenswert, dass für diejenigen, die noch SQL Server 6.5 und niedriger verwenden (gibt es noch Leute, die es verwenden?), Der eingebaute Typ von sysname
gleichbedeutend ist mitvarchar(30)
Dokumentation
sysname
wird mit der Dokumentation für nchar
undnvarchar
im Abschnitt "Bemerkungen" definiert:
sysname ist ein vom System bereitgestellter benutzerdefinierter Datentyp, der funktional nvarchar (128) entspricht , außer dass er nicht nullwertfähig ist. sysname wird verwendet, um auf Datenbankobjektnamen zu verweisen.
Um die obigen Ausführungen zu verdeutlichen, wird standardmäßig sysname definiert, da NOT NULL
es durchaus möglich ist, ihn als nullbar zu definieren. Es ist auch wichtig zu beachten, dass die genaue Definition zwischen Instanzen von SQL Server variieren kann.
Spezielle Datentypen verwenden
Der Datentyp sysname wird für Tabellenspalten, Variablen und Parameter für gespeicherte Prozeduren verwendet, in denen Objektnamen gespeichert werden. Die genaue Definition von
sysname hängt mit den Regeln für Bezeichner zusammen. Daher kann es zwischen Instanzen von SQL Server variieren. sysname ist funktional identisch mit nvarchar (128), außer dass sysname standardmäßig NICHT NULL ist. In früheren Versionen von SQL Server ist sysname als varchar (30) definiert.
Weitere Informationen zum sysname
Zulassen oder Nichtzulassen von NULL
Werten finden Sie hier https://stackoverflow.com/a/52290792/300863
Nur weil es die Standardeinstellung ist (NICHT NULL zu sein), kann dies nicht garantiert werden!