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