Avatar billede mickni33 Nybegynder
08. december 2005 - 11:10 Der er 1 løsning

Alter table med CONSTRAIN

ALTER TABLE Analyzer
ADD CONSTRAINT FK_AnalyzerType_Analyzer
FOREIGN KEY (IDAnalyzerType)
REFERENCES AnalyzerType (ID) ON DELETE CASCADE

Jeg skal have tilføjet en CASCADE DELETE til mine tabeller men
hvordan kan jeg ALTER uden at have min relation FK_AnalyzerType_Analyzer med....

Relationerne er der nemlig men skal have sat flueben i CASCADE DELETE
Avatar billede mickni33 Nybegynder
08. december 2005 - 12:47 #1
DECLARE @temptable2 varchar (255)


DECLARE testCursorDropConstraint CURSOR LOCAL FOR
SELECT  sysobjects.name AS RelatedTable FROM sysobjects INNER JOIN  syscolumns ON sysobjects.id = syscolumns.id
INNER JOIN  sysforeignkeys ON syscolumns.id = sysforeignkeys.fkeyid AND  syscolumns.colid = sysforeignkeys.fkey
INNER JOIN  syscolumns syscolumns2 ON sysforeignkeys.rkeyid = syscolumns2.id AND  sysforeignkeys.rkey = syscolumns2.colid
INNER JOIN  sysobjects sysobjects2 ON syscolumns2.id = sysobjects2.id WHERE  sysobjects2.name = 'AnalyzerType'

OPEN testCursorDropConstraint
FETCH NEXT FROM testCursorDropConstraint INTO @temptable2 /* sætter @tabelname = med den første tabel som pointer peger på*/
WHILE @@FETCH_STATUS=0
        BEGIN   
        print @temptable2
EXEC('ALTER TABLE '+ @temptable2 +' DROP CONSTRAINT FK_'+ @temptable2 +'_AnalyzerType')
EXEC('ALTER TABLE '+ @temptable2 +' ADD  CONSTRAINT FK_'+ @temptable2 +'_AnalyzerType FOREIGN KEY (IDAnalyzerType) REFERENCES AnalyzerType (ID) ON DELETE CASCADE')
        FETCH NEXT FROM testCursorDropConstraint INTO @temptable2
        END
Close testCursorDropConstraint
DeAllocate testCursorDropConstraint
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Computerworld tilbyder specialiserede kurser i database-management

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester