Welcome to Sign in | Help

Re: Golire baza de date

  •  03-21-2008, 10:04 AM

    Re: Golire baza de date

    B_gd_n[ ]Sahlean:
    ignatandrei:
    declare @len varchar(8000)
    set @len=''
    select @len = @len + 'truncate ' + name  + char(10)+ char(13) from sys.tables
    print @len

    Ce te faci daca exista chei externe ?
    Chiar si atunci cand ai activată opţiunea ştergere în cascadă vei obţine următoarea eroare:
    "Cannot truncate table 'A' because it is being referenced by a FOREIGN KEY constraint."

    CREATE TABLE A(ID_A INT PRIMARY KEY, DEN_A VARCHAR(25))
    GO

    CREATE TABLE B(ID_B INT PRIMARY KEY, DEN_B VARCHAR(25), ID_A INT REFERENCES A(ID_A))
    GO

    INSERT INTO A VALUES (1,'A_1')
    INSERT INTO A VALUES (2,'A_2')
    GO

    INSERT INTO B VALUES (1,'B_1',1)
    INSERT INTO B VALUES (2,'B_2',2)
    INSERT INTO B VALUES (3,'B_3',2)
    GO

    În acest caz , TRUNCATE TABLE A duce la obtinerea erorii de mai sus iar
    ordinea corectă este TRUNCATE TABLE B si apoi TRUNCATE TABLE A  !

    Bogdan, sunt de acord cu problema PK/FK.
    In general , astea se rezolva prin try/error ... muti mai jos  cele care nu merg ...
    Problema era de generat codul pentru mai multe tabele... Daca as vrea sa fac codul pentru PK/FK ar fi muuuult mai complicat ...

    Ignat Andrei
    http://serviciipeweb.ro/iafblog
View Complete Thread
Powered by Community Server (Commercial Edition), by Telligent Systems