Welcome to Sign in | Help
in Search

DROP constrangere (SQL 2000 si SQL 2005)

Last post 08-27-2008, 4:35 PM by sorineatza. 30 replies.
Page 1 of 3 (31 items)   1 2 3 Next >
Sort Posts: Previous Next
  •  02-18-2008, 4:32 PM 4057

    DROP constrangere (SQL 2000 si SQL 2005)

    Salut,

    Am o intrebare.
    Cum as putea sa fac DROP pe o constrangere (sa zicem cheia primara ) a unui tabel X cunoscut fara sa cunosc numele constrangerii iar toate sa se faca folosind o compbinatie de DDL si DML.
    Se paote o astfel de combinatie ?
    Inca ceva ... Acest lucru ar trebuie sa fie compatibil atat cu SQl 2005 cat si cu SQL 2000.

    Merci,
    Daniel.

    MCP (C Sharp)
    Software Engineer,
    Cluj Napoca
  •  02-18-2008, 4:44 PM 4058 in reply to 4057

    Re: DROP constrangere (SQL 2000 si SQL 2005)

    Sau inca o intrebare ... Exista si o alta metoda decat cea cu cursor ?

    MCP (C Sharp)
    Software Engineer,
    Cluj Napoca
  •  02-18-2008, 6:29 PM 4060 in reply to 4057

    Re: DROP constrangere (SQL 2000 si SQL 2005)

    O constrangere? Atunci de ce cursor? Daca tabelul are mai multe constrangeri pe care din ele vreti sa o stergeti?


    Cristian Andrei Lefter, SQL Server MVP
    MCT, MCSA, MCDBA, MCAD, MCSD .NET,
    MCTS, MCITP - Database Administrator SQL Server 2005
    http://sqlserver.ro
  •  02-18-2008, 7:26 PM 4062 in reply to 4060

    Re: DROP constrangere (SQL 2000 si SQL 2005)

    De ce ai nevoie sa "stergi" constrangerea? Ce vrei sa faci mai departe?

  •  02-18-2008, 7:51 PM 4063 in reply to 4062

    Re: DROP constrangere (SQL 2000 si SQL 2005)

    Se poate si fara cursor, dar cum alegi de care vrei sa scapi?
    Intrebare buna care s-a pus e ce vrei sa faci, poate avem idei (alte Smile).
     

  •  02-18-2008, 8:45 PM 4064 in reply to 4060

    Re: DROP constrangere (SQL 2000 si SQL 2005)

    Ideea este ca am niste constrangeri pe anumite tabele care sunt create implicit de genu FK_TBL_X_2455152 si sunt la client, iar acolo nu am acces la server, si as vrea sa le sterg pe toate de pe tabelele pe care am observat ca exista si sa creez altele cu niste nume mai ortodoxe de genu FK_TBL_X_TBL_Y.

    Daniel.


    MCP (C Sharp)
    Software Engineer,
    Cluj Napoca
  •  02-19-2008, 1:33 AM 4065 in reply to 4064

    Re: DROP constrangere (SQL 2000 si SQL 2005)

    cretzu:

    Ideea este ca am niste constrangeri pe anumite tabele care sunt create implicit de genu FK_TBL_X_2455152 si sunt la client, iar acolo nu am acces la server, si as vrea sa le sterg pe toate de pe tabelele pe care am observat ca exista si sa creez altele cu niste nume mai ortodoxe de genu FK_TBL_X_TBL_Y.

    Daniel.


    sp_rename
    "An item of a type tracked in sysobjects. For example, OBJECT could be used to rename objects including constraints (CHECK, FOREIGN KEY, PRIMARY/UNIQUE KEY), user tables, views, stored procedures, triggers, and rules."
  •  02-19-2008, 10:53 AM 4067 in reply to 4065

    Re: DROP constrangere (SQL 2000 si SQL 2005)

    Okay,

    Am inteles, se pot redenumi constrangerile iar acestea sunt in sysobjects si cu xtype  pe 'PK' si 'F'.
    Dar cum pot sa fac cat m optim redenumirea constrangerilor.

    Pot sa scot intr-un select name from sysobjects cu constrangerile si cu conditia ca numele sa contina cifre.
    Dar ca sa fac rename pe fiecare in parte dintre aceste contrangeri nu stiu alta posibilitate decat sa folosesc un cursor si pentru fiecare element sa ii fac rename.



    MCP (C Sharp)
    Software Engineer,
    Cluj Napoca
  •  02-19-2008, 11:23 AM 4068 in reply to 4067

    Re: DROP constrangere (SQL 2000 si SQL 2005)

    cretzu:
    Okay,

    Am inteles, se pot redenumi constrangerile iar acestea sunt in sysobjects si cu xtype  pe 'PK' si 'F'.
    Dar cum pot sa fac cat m optim redenumirea constrangerilor.

    Pot sa scot intr-un select name from sysobjects cu constrangerile si cu conditia ca numele sa contina cifre.
    Dar ca sa fac rename pe fiecare in parte dintre aceste contrangeri nu stiu alta posibilitate decat sa folosesc un cursor si pentru fiecare element sa ii fac rename.



    Nu stiu f bine cum se scot constrangerile din BD ( cu xtype  pe 'PK' si 'F'.)
    dar poti face un update de genul
    update <sysobjects> set <nume_fk> = 'fk' + '<nume_tabela_pk>' + '<nume_tabela_fk>'
    from <sysobjects> inner join <systables> PK
    on <conditie de Primary table pe constringere>
    inner join <systables> FK
    on <conditie de Primary table pe constringere>

    where <sysobjects>.<este_constringere>( xtype  pe 'PK' si 'F', cum scrii tu)

    ( ma rog, mai intii ar trebui sa faci un select ... ca sa nu strici ceva...)


    Ignat Andrei
    http://serviciipeweb.ro/iafblog
  •  02-19-2008, 11:42 AM 4069 in reply to 4068

    Re: DROP constrangere (SQL 2000 si SQL 2005)

    Merci pentru idee.
    Am o problema insa la aplicare pe un server de test ;)

    Am dat comanda

    UPDATE sysobjects
    SET name = 'PK_IDDomeniu'
    FROM sysobjects INNER JOIN
    (
    SELECT child.name, child.id as id FROM
        sysobjects parent
        INNER JOIN sysobjects child ON parent.id = child.parent_obj
    WHERE child.xtype = 'PK' AND parent.name = 'domenii'
    )rest ON sysobjects.id = rest.id

    Problema este ca primesc urmatoarea eroare.

    Msg 259, Level 16, State 1, Line 1
    Ad hoc updates to system catalogs are not allowed.

    Acu incerc sa vad ca poate scap de eroare :)

    Totusi ... pe SQL 2005 se poate sa faci update pe vederi sistem ???(eu stiam ca nu Hmm) si daca da ... daca exista o cale ca aceste comenzi sa fie valabile si pe SQL 2000

    sp_configure 'allow updates', 1
    reconfigure with override

    UPDATE sysobjects
    SET name = 'PK_IDDomeniu'
    FROM sysobjects INNER JOIN
    (
    SELECT child.name, child.id as id FROM
        sysobjects parent
        INNER JOIN sysobjects child ON parent.id = child.parent_obj
    WHERE child.xtype = 'PK' AND parent.name = 'domenii'
    )rest
    ON sysobjects.id = rest.id

    sp_configure 'allow updates', 0
    reconfigure with override

    dar nu cred ca pot sa schimb flagul de allow updates :(


    Daniel.




    MCP (C Sharp)
    Software Engineer,
    Cluj Napoca
  •  02-19-2008, 11:58 AM 4070 in reply to 4069

    Re: DROP constrangere (SQL 2000 si SQL 2005)

    incearca sa pui BD single user ...

    Ignat Andrei
    http://serviciipeweb.ro/iafblog
  •  02-19-2008, 12:00 PM 4071 in reply to 4070

    Re: DROP constrangere (SQL 2000 si SQL 2005)

    Poti sa ma ajuti un pic ... am citit sa dau drumul in single user ... dar nu prea stiu cum se face chestia asta :(
    Acest lucru se poate face si pe serverul clientului daca nu am remote pe el ? numai din scripturi ??

    Daniel.

    MCP (C Sharp)
    Software Engineer,
    Cluj Napoca
  •  02-19-2008, 12:10 PM 4072 in reply to 4071

    Re: DROP constrangere (SQL 2000 si SQL 2005)

    http://www.cryer.co.uk/brian/sqlserver/howto_start_single_user_mode.htm

    Ignat Andrei
    http://serviciipeweb.ro/iafblog
  •  02-19-2008, 12:23 PM 4073 in reply to 4071

    Re: DROP constrangere (SQL 2000 si SQL 2005)

    Nu modificati continutul tabelelor sistem !!!!!!!!!

    In 2005 oricum nu o sa puteti.

    Exista mai multe optiuni incepand cu sp_rename si terminand cu ALTER TABLE DROP/ADD CONSTRAINT.

    Ce nu va convine la cursor ?

     


    Cristian Andrei Lefter, SQL Server MVP
    MCT, MCSA, MCDBA, MCAD, MCSD .NET,
    MCTS, MCITP - Database Administrator SQL Server 2005
    http://sqlserver.ro
  •  02-19-2008, 12:29 PM 4074 in reply to 4073

    Re: DROP constrangere (SQL 2000 si SQL 2005)

    Salut,

    Vreau sa te intreb ... tu cum ai face acest lucru si daca in afara de a face cursor ...asa cum am zis m sus ... as putea sa fac si altfel.
    Oricum ideea cu single user nu mi se aplica cum nu am access pe serverul clientului.




    MCP (C Sharp)
    Software Engineer,
    Cluj Napoca
Page 1 of 3 (31 items)   1 2 3 Next >
View as RSS news feed in XML
Powered by Community Server (Commercial Edition), by Telligent Systems