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á!