terça-feira, 11 de agosto de 2015

Listando as Colunas de uma Tabela no MS-SQL Server

Olá, Bom Dia Galera!!!

Vamos ver os comandos para listar todas as colunas de uma tabela no MS-SQL server, identificando as chaves primárias, as chaves estrangeiras, o tipo de dado, tamanho do campo, bem como se ele aceita nulo ou não.

Tendo em mãos o nome da tabela desejada, basta executar o comando abaixo:

Vamos ao comando?
SELECT A.name + 
       ' (' + CASE WHEN ((SELECT COUNT(1) 
                      FROM INFORMATION_SCHEMA.KEY_COLUMN_USAGE AA 
                          WHERE A.name = AA.COLUMN_NAME 
                            AND CONSTRAINT_NAME = (SELECT NAME 
                                                   FROM SYSOBJECTS As AAA
                                                   WHERE AA.TABLE_NAME = OBJECT_NAME(AAA.Parent_Obj)
                                                     AND AAA.XTYPE = 'PK')) > 0)
       THEN 'PK, ' ELSE '' END +
       CASE WHEN ((SELECT COUNT(1)
                   FROM INFORMATION_SCHEMA.REFERENTIAL_CONSTRAINTS AA
                   LEFT JOIN INFORMATION_SCHEMA.KEY_COLUMN_USAGE BB ON BB.CONSTRAINT_CATALOG = AA.CONSTRAINT_CATALOG
                                                                   AND BB.CONSTRAINT_SCHEMA = AA.CONSTRAINT_SCHEMA
                                                                   AND BB.CONSTRAINT_NAME = AA.CONSTRAINT_NAME
                   WHERE BB.TABLE_NAME = B.name 
                     AND BB.COLUMN_NAME = A.name) > 0) 
       THEN 'FK, ' ELSE '' END +
       C.name + CASE WHEN (C.collationid IS NOT NULL) 
                THEN  '(' + CAST(A.length AS VARCHAR(10)) + ')' ELSE '' END  + ', ' +
       CASE WHEN (A.isnullable = 0) THEN 'Não Nulo' ELSE 'Nulo' END +
       ')' AS Coluna
FROM SYSCOLUMNS A
LEFT JOIN SYSOBJECTS B ON A.id = B.id
LEFT JOIN SYSTYPES C ON A.usertype = C.usertype
WHERE B.name = 'Pessoa'  -- Nome da Tabela

Prontinho, aí estão todas as colunas com as devidas informações de tamanho, tipo de dado, etc.

Se você tem uma dica interessante, preencha o Formulário de contato do lado direito da página e nos envie.

Atenciosamente
Dica Chave.

Nenhum comentário:

Postar um comentário