Quem nunca teve o seguinte problema...
Ao acessar a estrutura de uma tabela através do comando SP_HELP, você tem a intenção de identificar as configurações de uma determinada coluna. Para qualquer pessoa que mexa com banco de dados a dois dias, sabe como fazer.
Mas o problema que vejo com muitas pessoas e até eu ver isso em um fórum, também achava muito chato, era quando este comando é executado em uma tabela com centenas de colunas!!!! Isso mesmo, CENTENAS...Ficar na barra de rolagem não é muito agradavél...
No SQL quando criamos colunas nas tabelas, elas são armazenadas na ordem em que são criadas, e isso dá muito trabalho para ficar achando a informação da coluna conforme já mencionado acima.
Com a consulta abaixo, resolveremos isso. Conseguiremos trazer as informações por qualquer ordem que desejarmos.
SELECT TABLE_NAME, COLUMN_NAME, ORDINAL_POSITION
FROM INFORMATION_SCHEMA.COLUMNS
WHERE TABLE_NAME = 'TABLE1'
ORDER BY COLUMN_NAME
Resolvi postar esta informação depois de ouvir vários comentários a respeito. Com isso diminuimos um pouco a chatice da barra de rolagem....rsrsrs.
Obs.: Apenas como informação complementar, podemos ter as informações das colunas das tabelas pela view de sistema SYS.COLUMNS. Interessante ver o último post com um link para maiores detalhes.
Até a próxima,
Este blog tem o objetivo de compartilhar idéias sobre banco de dados com toda a comunidade de desenvolvedores e analistas de sistemas.
segunda-feira, 8 de novembro de 2010
Quando uma tabela foi criada?
Durante um processo de analise de algumas bases, onde estava sendo feita uma comparação de duas bases afim de garantir que os objetos/estrutura estavam iguais, identifiquei que alguns objetos estavam diferentes.
Diante disto precisei da seguinte informação (E creio que muita gente já fez a mesma pergunta): QUANDO ESTA TABELA FOI CRIADA???? Todo DBA já fez este questionamento....
Outro questionamento também é: QUANDO FOI A ÚLTIMA VEZ QUE MINHA TABELA SOFREU UMA ALTERAÇÃO?
Venho através deste post responder a estas perguntas.
Com a consulta abaixo conseguiremos responder ao questionamento:
SELECT SCHEMA_NAME(SCHEMA_ID) As Esquema, Name As Nome, Create_Date As Criacao, Modify_Date As Modificacao
FROM SYS.TABLES
ORDER BY Modificacao DESC
Através da SYS.TABLES temos algumas informações das tabelas de nosso banco.
Uma dica que gostaria que todos pudessem fazer, é averiguar sobre estas views de sistema.
Acessem o link: http://msdn.microsoft.com/pt-br/library/ms189783.aspx
e estudem sobre os principais tipos. Elas são muito utéis e ajudam muito a resolver vários problemas no processo de desenvolvimento.
Até mais,
Diante disto precisei da seguinte informação (E creio que muita gente já fez a mesma pergunta): QUANDO ESTA TABELA FOI CRIADA???? Todo DBA já fez este questionamento....
Outro questionamento também é: QUANDO FOI A ÚLTIMA VEZ QUE MINHA TABELA SOFREU UMA ALTERAÇÃO?
Venho através deste post responder a estas perguntas.
Com a consulta abaixo conseguiremos responder ao questionamento:
SELECT SCHEMA_NAME(SCHEMA_ID) As Esquema, Name As Nome, Create_Date As Criacao, Modify_Date As Modificacao
FROM SYS.TABLES
ORDER BY Modificacao DESC
Através da SYS.TABLES temos algumas informações das tabelas de nosso banco.
Uma dica que gostaria que todos pudessem fazer, é averiguar sobre estas views de sistema.
Acessem o link: http://msdn.microsoft.com/pt-br/library/ms189783.aspx
e estudem sobre os principais tipos. Elas são muito utéis e ajudam muito a resolver vários problemas no processo de desenvolvimento.
Até mais,
Encontrando tabelas no SQL e no Oracle
Segue aqui informação importante e consideravel para agilizar busca de tabelas no SQL Server e também no Oracle.
Temos situações importantes em que precisamos encontrar algumas tabelas dentro do banco de dados. A medida em que o banco de nossa empresa vai crescendo, temos que ter formas rápidas de encontrar estes objetos.
No SQL 2008 temos duas formas:
SELECT * FROM SYS.TABLES e SELECT * FROM SYS.OBJECTS WHERE TYPE = 'U'
Onde na segunda consulta temos o filtro TYPE = 'U' que significa USER_TABLE, ou Tabela de Usuário. Pois temos no SQL o conceito de schema, que podemos ter objetos de mesmo nome mas em schemas diferentes.
No Oracle temos o seguinte comando:
SELECT * FROM DBA_TABLES ou SELECT * FROM USER_TABLES
Assim como no SQL o Oracle tem o conceito de owner ou o dono da tabela. O que significa isso?
Quando estamos no Oracle, acessamos sempre com algum usuário. Se estamos logados no Oracle com o usuário USER1, criamos a tabela CLIENTES e se logarmos com outro usuário, por exemplo, USER2 e rodarmos a segunda consulta buscando pela tabela CLIENTES nada será retornado.
Diferente da primeira consulta, que traz todas as tabelas independente do owner, a segunda filtra sempre pelo usuário logado naquela seção.
Então esta foi uma demonstração de como realizar busca de tabelas no SQL e no Oracle.
Temos situações importantes em que precisamos encontrar algumas tabelas dentro do banco de dados. A medida em que o banco de nossa empresa vai crescendo, temos que ter formas rápidas de encontrar estes objetos.
No SQL 2008 temos duas formas:
SELECT * FROM SYS.TABLES e SELECT * FROM SYS.OBJECTS WHERE TYPE = 'U'
Onde na segunda consulta temos o filtro TYPE = 'U' que significa USER_TABLE, ou Tabela de Usuário. Pois temos no SQL o conceito de schema, que podemos ter objetos de mesmo nome mas em schemas diferentes.
No Oracle temos o seguinte comando:
SELECT * FROM DBA_TABLES ou SELECT * FROM USER_TABLES
Assim como no SQL o Oracle tem o conceito de owner ou o dono da tabela. O que significa isso?
Quando estamos no Oracle, acessamos sempre com algum usuário. Se estamos logados no Oracle com o usuário USER1, criamos a tabela CLIENTES e se logarmos com outro usuário, por exemplo, USER2 e rodarmos a segunda consulta buscando pela tabela CLIENTES nada será retornado.
Diferente da primeira consulta, que traz todas as tabelas independente do owner, a segunda filtra sempre pelo usuário logado naquela seção.
Então esta foi uma demonstração de como realizar busca de tabelas no SQL e no Oracle.
Assinar:
Postagens (Atom)