Eu tenho um tipo de tabela definido pelo usuário no SQL Server 2014 que preciso descartar e recriar. No entanto, se eu usar o script do SSMS, as restrições de valor padrão que estão em algumas das colunas não serão criadas.
Também tenho problemas para visualizar a restrição padrão, então não sei qual deve ser o valor padrão.
Existe uma maneira de ver o que essas restrições de valor padrão contêm?
CREATE TYPE [Logging].[LogElements] AS TABLE(
[LogMessage] [nvarchar](MAX) NOT NULL,
[MessageTypeId] [smallint] NOT NULL,
[Origin] [varchar](50) NOT NULL,
[JobRunId] [int] NULL,
[InvoiceId] [int] NULL,
[AccountlineId] [int] NULL,
[MSErrorCode] [bigint] NOT NULL,
[LogStatusId] [int] NOT NULL,
[LogUser] [varchar](50) NULL
) VAI
Acima está a definição criada ao gerar o script no SSMS. Como você pode ver, os valores padrão não estão no script.
Encontre o tipo de tabela definido pelo usuário:
Na minha saída, o objeto foi chamado
TT_LogElements_3A4CA8FD
e tinha umobject_id
de978102525
.Agora podemos usar um script semelhante à resposta de Ryan Cooper, conectando
object_id
-o àWHERE
cláusula, comoparent_object_id
:Esta é minha saída de exemplo, que é bastante trivial para converter em um script T-SQL para recriá-los.
Você pode ver os padrões e suas definições com esta consulta:
Editado para encontrar tipos definidos pelo usuário: