sysname é um tipo de dados integrado limitado a 128 caracteres Unicode que, IIRC, é usado principalmente para armazenar nomes de objetos ao criar scripts. Seu valor não pode ser NULL É basicamente o mesmo que usar
nvarchar(128) NOT NULL EDITAR
Conforme mencionado por @Jim nos comentários, não acho que haja realmente um caso de negócios em que você usaria
sysname para ser honesto. É usado principalmente pela Microsoft ao construir o sys interno tabelas e procedimentos armazenados etc dentro do SQL Server. Por exemplo, executando
Exec sp_help 'sys.tables' você verá que a coluna name é definido como sysname isso ocorre porque o valor disso é na verdade um objeto em si (uma tabela) Eu não me preocuparia muito com isso.
Também vale a pena notar que para aquelas pessoas que ainda usam o SQL Server 6.5 e inferior (ainda há pessoas usando?) o tipo embutido de
sysname é o equivalente a varchar(30) Documentação
sysname é definido com a documentação para nchar e nvarchar , na seção de comentários:
nome do sistema é um tipo de dados definido pelo usuário fornecido pelo sistema que é funcionalmente equivalente a nvarchar(128) , exceto que não é anulável. nome do sistema é usado para fazer referência a nomes de objetos de banco de dados.
Para esclarecer as observações acima, por padrão nome do sistema é definido como
NOT NULL é certamente possível defini-lo como anulável. Também é importante observar que a definição exata pode variar entre as instâncias do SQL Server. Usando tipos de dados especiais
O nome do sistema tipo de dados é usado para colunas de tabela, variáveis e parâmetros storedprocedure que armazenam nomes de objetos. A definição exata de sysname está relacionado às regras para identificadores. Portanto, ele pode variar entre instâncias do SQL Server. nome do sistema é funcionalmente igual a nvarchar(128) exceto que, por padrão, sysname não é nulo. Versões anteriores do SQL Server, sysname é definido como varchar(30).
Algumas informações adicionais sobre
sysname permitindo ou não NULL os valores podem ser encontrados aqui https://stackoverflow.com/a/52290792/300863 Só porque é o padrão (ser NOT NULL) não garante que será!