Vinnaren i pepparkakshustävlingen!
2011-10-06, 17:39
  #1
Medlem
The Barrs avatar
Jo, jag måste konvertera en gammal sopig databas till mssql och har kommit så långt att jag har formaterat om all data och kört in den i den nya strukturen med bcp. (När jag gör detta så kollar den inte den RI'n utan matar in de id'n jag säger åt den.)

Nu när jag har fått in all data måste jag se till att RI'n är där. Jag skulle ju kunna scripta allt i vanlig sql genom att "manuellt" kolla om FK's existerar, men det är en ganska stor databas. Det känns som om det borde finnas ett inbyggt kommando för detta, har jag rätt? Jag googlade lite på check constraints, men där ser jag bara exempel på validering av formatet i fälten...
Citera
2011-10-06, 20:27
  #2
Medlem
Citat:
Ursprungligen postat av The Barr
Jo, jag måste konvertera en gammal sopig databas till mssql och har kommit så långt att jag har formaterat om all data och kört in den i den nya strukturen med bcp. (När jag gör detta så kollar den inte den RI'n utan matar in de id'n jag säger åt den.)

Nu när jag har fått in all data måste jag se till att RI'n är där. Jag skulle ju kunna scripta allt i vanlig sql genom att "manuellt" kolla om FK's existerar, men det är en ganska stor databas. Det känns som om det borde finnas ett inbyggt kommando för detta, har jag rätt? Jag googlade lite på check constraints, men där ser jag bara exempel på validering av formatet i fälten...

Bra fråga! Inte hamnat i den situationen men det är absolut något man borde känna tilll. Började googla lite men har slut på tid nu tyvärr. Är DBCC CHECKDB något som kan hjälpa?
http://msdn.microsoft.com/en-us/library/ms176064.aspx
http://mssqlonline.blogspot.com/2008...grity-for.html

Jag har inte satt mig in i det så jag kanske är helt ute och cyklar! Ska följa tråden...
Citera
2011-10-06, 21:12
  #3
Medlem
The Barrs avatar
Citat:
Ursprungligen postat av PerWi
Bra fråga! Inte hamnat i den situationen men det är absolut något man borde känna tilll. Började googla lite men har slut på tid nu tyvärr. Är DBCC CHECKDB något som kan hjälpa?
http://msdn.microsoft.com/en-us/library/ms176064.aspx
http://mssqlonline.blogspot.com/2008...grity-for.html

Jag har inte satt mig in i det så jag kanske är helt ute och cyklar! Ska följa tråden...


Hm... Det var ett bra håll du pekade mig, men jag får inte CHECKDB att ge mig något felmeddelande om integriteten. Om jag däremot kör DBCC CHECKCONSTRAINTS [table] WITH ALL_CONSTRAINTS; så får jag upp en fin lista på alla saknade fk's. Däremot innehåller ju den funktionen inga reparationsalternativ som CHECKDB gör. Ska se om jag får CHECKDB att ge mig mina felande fk's så att den kan ta bort dom...

Edit: Ja, CHECKDB har ju inte så många alternativ, jag har försökt köra med både EXTENDED_LOGICAL_CHECKS och ALL_ERRORMSGS men inga fel. Borde inte RI innefattas i "Checks the logical and physical integrity of all the objects in the specified database"?

Nåväl...
__________________
Senast redigerad av The Barr 2011-10-06 kl. 21:17.
Citera

Stöd Flashback

Flashback finansieras genom donationer från våra medlemmar och besökare. Det är med hjälp av dig vi kan fortsätta erbjuda en fri samhällsdebatt. Tack för ditt stöd!

Stöd Flashback