Una de las cosas que mas ayudan pero a su ves mas lata dan (para actualizar) son las reglas, debes de checar dependecias y muchas cosas, no es como un drop y create o si fuera oracle create or replace (eso seria bueno en Sybase), a continuacion voy a poner los pasos que aplique para actualizar la regla.

1.- Checar dependencias (sp_depends test_to_rule)


2.- Ejecutar unbind hacia las columnas y tipos de datos que hacen referencia a la regla

1> sp_unbindrule test_to_flag
2> go

1> sp_unbindrule "legacybidanswer.lba_test_to_ind"
2> go
3.- Renombrar la regla

1> sp_rename test_to_rule, test_to_rule_back
2> go
4.- Generar nuevamente la regal

1> CREATE RULE test_to_rule AS @test_to_flag = "MAT" or @test_to_flag = "CAL"
2> or @test_to_flag = "PAR" or @test_to_flag = "PUT"
3> or @test_to_flag = "NA"
4> go
5.- Ejecutar bind para tipos de datos y columnas previamente encontradas

1> sp_bindrule test_to_rule, "legacybidanswer.lba_test_to_ind"
2> go

1> sp_bindrule test_to_rule,test_to_flag
2> go
Like it on Facebook, +1 on Google, Tweet it or share this topic on other bookmarking websites.
  • Re: Como Actualizar una Regla en Sybase

    by » 9 years ago


    Una duda, que pasa si no se hiciera el unbind de los objetos que hacen referencia? Te manda un error a la hora de renombrarla? o los objetos se quedarían compilados apuntando a una regla que ya no existe?
    Gracias

  • Re: Como Actualizar una Regla en Sybase

    by » 9 years ago


    te manda un error ya que tienes objetos vindulados, por eso debes de seguir esos pasos y al ultimo borrar la regla, es un poco tedioso el proceso, me gustaria que Sybase tubiera el create or replace, pero no, espero que ahora con SAP las cosas mejoren mucho, las ultimas versiones son muy amigables y ayudan mucho al DBA.

    Espero te sirva :)

  • Re: Como Actualizar una Regla en Sybase

    by » 9 years ago


    hay otra forma de checar las dependecias de un regla, mediante una consulta y la puedes modificar para checar las dependencias de cualquier objeto

    select sysobjects.name as "rule name", object_name(syscolumns.id) as "table name", syscolumns.name as "column name"
    from sysobjects, syscolumns
    where object_name(syscolumns.domain)=sysobjects.name
    and sysobjects.type='R' and sysobjects.name="price_to_rule"
    go

You do not have permissions to reply to this topic.
Powered by CjForum