26. oktober 1999 - 02:23Der er
9 kommentarer og 1 løsning
DEFAULT CONSTRAINT
Sql 7.0 server
[Microsoft][ODBC SQL Server Driver][SQL Server]ALTER TABLE DROP COLUMN z4 failed because DEFAULT CONSTRAINT DF__ArtEmneBranc__z4__3508D0F3 accesses this column.
Den anfægter alt så jeg ikke kan droppe kolonner i Query Analyzer og ejheller fra ASP sider. Den går på tværs af tabeller og databaser.
Hvad ind i H. er det ? Kam ikke finde noget om D.C. i books online. Hvordan fjerner jeg lortet ?
Virksomheder er på vej fra store sprogmodeller, der svarer på spørgsmål, til AI-agenter, der kan udføre opgaver på egen hånd. Det gør teknologien mere nyttig – og langt mere risikabel.
Prøv at droppe default constrainten først med DROP DEFAULT DF__ArtEmneBranc__z4__3508D0F3. hvis det ikke virker så genere et script over tabellen, så kan jeg måske løse problemmet for dig.
Jeg går ud fra at det er MSSQL 7.0 du bruger siden du vil droppe en kolonne
Jeg anvender Db.dbo.tabel i ALTER statement. Scriptet kan ikke genereres i enterprise manager, da det skal foregå dynamisk over intranet. Fejlen optræder så snart jeg angiver en default værdi til en kolonne, fejlen er ikke begrænset til en db men er globalt.
Dit problem er du ikke kender navnet på default constainten, når du skal droppe kolonnen. du kan selv angive navn på default constainten når du opretter tabellen, og vil derfor kende navnet når du dropper kolonne. se følgende:
Når du så vil droppe kolonnen adddate skal default constainen adddatedflt droppes først derefter columnen
f.eks. ALTER TABLE myTable DROP CONSTAINT addDatedflt go ALTER TABLE myTable DROP COLUMN AddDate
Hvis dette ikke hjælper som har jeg måske en anden mulighed.
forresten er dette ikke en fejl der er designet sådanne. udtræk fra alter table hjælpen
A column cannot be dropped if it is: A replicated column. Used in an index. Used in a CHECK, FOREIGN KEY, UNIQUE, or PRIMARY KEY constraint. Associated with a default defined with the DEFAULT keyword, or bound to a default object. Bound to a rule.
Din løsning fungerer udmærket lokalt på den individuelle kolonne så du appellererr kraftigt til de 300 p, men problemet er der stadig i de eksisterende tabeller på det globale plan.
Kan det have noget med baglæns comp. til 6.5 at gøre ? Og hvor fjerner jeg den comp ?
Mht. Replikations drop constraint osv. er ikke et problem, da det drejer sig om lokale intermidiate tabeller der sætter webmaster istand til at skabe crossreffs mellem to væsensforskellige indextabeller.
Du kan sætte baglæns comp med denne stored procedure sp_dbcmptlevel Databasename, 60 eller 65 eller 70 afhængig af hvilken compabilitet du vil have se evt i online hjælpen omkring denne stored procedure.
HINT man kan kun droppe columns når baglæns comp er 70. fordi det kun er MSSQL 7.0 der tillader denne funktion
Hvad mener du med at problemmet er der standigvæk på det globale plan???. Ja problemmet eksistere standigvæk hvis du ikke kender navnet på default constaints'ene, SQL Server finder selv på navn til default constaints hvis du ikke selv navngiver dem
er lokale intermidiate tabeller = Temporær tabeller??
Indtil i aftes kunne jeg droppe kolonner uden problemer både fra Query Analyzer og Asp, så puf !! Selv ikke en Serverdansen hjalp.
Vedr. intemidiate tabeller så har jeg en artikeltabel med en emnetabel og en leverandørtabel med en branchetabel. Når en artikel vælges skal emne referere dels leverandørbrancher. Denne reference er ikke statisk men afhængig af modeluner og aktualitet, hvorfor jeg har været nødt til at lave en kobling med en dynamisk tabel, der genererer data og skriver dem videre.
Det var så lidt, jeg håber at det løste problemet. Det vil have bedre at SQL 70 selv kunne slette eventuelle default constrains på tabeller, ved hjælp af en extra parameter. For man kender sgu ikke altid navnene på constrains'erne
Synes godt om
Ny brugerNybegynder
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.