none
Extração de Rules e Defaults RRS feed

  • Pergunta

  • Olá,

    Primeiramente obrigado por estar visualizando minha thread.

    Preciso extrair as Rules, e suas aplicações, e Defaults, e suas aplicações, de um banco de dados do  SQL Server 2005. Para as outras coisas eu consigo através das Views do schema INFORMATION_SCHEMA, mas para esses itens não consigo achar, ou não tem.

    Fico grato se alguém puder dar alguma informação sobre isso e/ou como extrair tais metadados.

    Atenciosamente
    quarta-feira, 10 de janeiro de 2007 12:32

Respostas

Todas as Respostas

  •  

     vc. quer verificar quem esta usando rules e default ?, pode explicar melhor, se sim consultando a sysobjects vc. pode criar essa consulta qualquer coisa retorne.

     

    Abs;

    quarta-feira, 10 de janeiro de 2007 12:35
  • Olá Marcelo,

    Sim, eu preciso saber quais as defaults a nivel de coluna e tabela existem e as colunas que as usam, e preciso saber quais são as rules e quem as usam.

    Atenciosamente
    quarta-feira, 10 de janeiro de 2007 12:40
  • Tenta isto:

    Declare @Nome varchar(100),

    @Tipo varchar(100)

    Declare Cursor_Pesquisa Cursor For Select name,type from Sys.Sysobjects Where Type IN('D','R')

    Open Cursor_pesquisa

    Fetch Next From Cursor_Pesquisa Into @Nome,@Tipo

    While @@Fetch_Status = 0

    Begin

    Print 'Nome: ' + @Nome + ' - Tipo: ' + @Tipo

    Fetch Next From Cursor_Pesquisa Into @Nome,@Tipo

    end

    Close Cursor_Pesquisa

    Deallocate Cursor_Pesquisa

     

     

    Espero ter ajudado

    quarta-feira, 10 de janeiro de 2007 12:46
  • Olá Anderson,

    Obrigado pela ajuda, com isso consigo agora recuperar quais são, porém eu preciso saber aonde são aplicados e na questão das defaults, eu preciso saber qual foi criado para coluna e qual não foi.

    Atenciosamente
    quarta-feira, 10 de janeiro de 2007 12:52
  • Marcelo,

    Você pode realizar uma pesquisa na table sysobjects, procurando através da coluna XType.

    Veja a tabela abaixo, para identificar o significado de cada letra na coluna Xtype da table sysobjects:

    xtype

    char(2)

    Object type. Can be one of the following object types:

    C = CHECK constraint

    D = Default or DEFAULT constraint

    F = FOREIGN KEY constraint

    L = Log

    FN = Scalar function

    IF = In-lined table-function

    P = Stored procedure

    PK = PRIMARY KEY constraint (type is K)

    RF = Replication filter stored procedure

    S = System table

    TF = Table function

    TR = Trigger

    U = User table

    UQ = UNIQUE constraint (type is K)

    V = View

    X = Extended stored procedure

    quarta-feira, 10 de janeiro de 2007 12:52
  • Marcelo,

    A coluna Type na table sysobjects também poderia ser utilizada:

    type

    char(2)

    Object type. Can be one of the following values:

    C = CHECK constraint

    D = Default or DEFAULT constraint

    F = FOREIGN KEY constraint

    FN = Scalar function

    IF = In-lined table-function

    K = PRIMARY KEY or UNIQUE constraint

    L = Log

    P = Stored procedure

    R = Rule

    RF = Replication filter stored procedure

    S = System table

    TF = Table function

    TR = Trigger

    U = User table

    V = View

    X = Extended stored procedure

    quarta-feira, 10 de janeiro de 2007 12:54
  • Basta vc Relacionar a Tabela Sys.Sysconstraints com a tabela Sys.Sysobjects e com a Sys.Syscolumns , qualquer coisa retorne.

     

     

    Espero ter ajudado

    quarta-feira, 10 de janeiro de 2007 12:57
  • poderia ser algo +- assim


     select sysobjects.name, syscomments.text
     from syscomments
     inner join sysobjects on  sysobjects.id = syscomments.id and sysobjects.xtype = 'D'
     

     

    Abs;

    quarta-feira, 10 de janeiro de 2007 12:59
  • Marcelo,

    Para obter se a uma determinada coluna possui uma constraint, você devéra utilizar as tables de sistema: syscolumns e sysconstraints, fazendo um relacionamento entre ela.

    quarta-feira, 10 de janeiro de 2007 13:03
  • Olá Marcelo, Anderson e Junior,

    Acho que eu entendi a idéia, agora vou continuar aqui, só que eu estou com + 2 dúvidas.

    Qual a diferença das views sys.objects e sys.sysobjects?

    Eu estou fazendo um sistema que vai conectar com o SQL Server 2005 e extrair esses dados que nós discutimos e mais as tabelas, colunas, primary keys, foreign keys e etc... e isso até agora eu fiz, só que eu estou utilizando as views do schema INFORMATION_SCHEMA para fazer tais extrações, a pergunta é seria melhor só usar as views do schema sys já que eu vou ter que acessar elas para puxar as RULES e DEFAULTS?

    Atenciosamente
    quarta-feira, 10 de janeiro de 2007 13:05
  • no 2005 use sys.objects. meus exemplos eram para o sql 2000.
    quarta-feira, 10 de janeiro de 2007 13:16
  • Marcelo montei um SP que faz a extração,comparação e geração de scritps prefiro utilizar as Views por ter mais flexibilidade.

     

     

    Abs

    quarta-feira, 10 de janeiro de 2007 13:34
  • Olá Anderson,

    As views do schema "INFORMATION_SCHEMA" ou "sys"?

    Atenciosamente
    quarta-feira, 10 de janeiro de 2007 13:38
  • Sys

     

     

    abs

    quarta-feira, 10 de janeiro de 2007 13:59
  • Olá Anderson,

    Novamente obrigado pela atenção, só + 1 questão, ja que eu vou utilizar do schema sys para extrair os metadados, como eu faço para saber se um login pode acessar esses dados?

    Atenciosamente
    quarta-feira, 10 de janeiro de 2007 14:03
  • Marcelo dá uma olhada na Sys.Syspermissions

     

     

    Espero ter ajudado

    quarta-feira, 10 de janeiro de 2007 14:06
  • Kra... vc é irmão do Luis Fernando???? Filho da Rossana???

     

    se for me manda um mail ou me add no MSN (rodrigothadeu1@hotmail.com)

     

    é importante,,,,

     

    abraço

     

     

    rodrigo thadeu

    segunda-feira, 26 de fevereiro de 2007 00:14