Avatar billede Slettet bruger
05. juni 2005 - 19:23 Der er 16 kommentarer og
1 løsning

Alter drop PrimaryKey

Hej
Jeg har fået en kode til at slette felter der er PrimaryKey:

sql = "ALTER TABLE `test` DROP constraint PrimaryKey"
Set rs = Conn.execute(Sql)

men jeg aner ikke hvad jeg skal sætte ind istedet for "constraint", det er ikke bare felt navn, det virker ikke.

Håber i kan hjælpe.
Bjarke
Avatar billede lauer Nybegynder
05. juni 2005 - 20:13 #1
Altså - skal lige være helt sikker på hvad du vil.
Vil du slette et felt som hedder 'PrimaryKey' eller vil du slette den primære nøgle?

Hvis det er et felt du vil slette burde følgende gøre det
ALTER TABLE `test` DROP COLUMN PrimaryKey

Hvis det er nøgle du vil slette er det
ALTER TABLE `test` DROP PRIMARY KEY
Avatar billede dj_uncas Nybegynder
05. juni 2005 - 21:16 #2
Desuden skal du ikke proppe dine data i et recordset, men bare udføre din query:

sql = "ALTER TABLE `test` FROP PRIMARY KEY"
Conn.Execute(sql)
Avatar billede Slettet bruger
06. juni 2005 - 21:23 #3
sql = "ALTER TABLE `test` DROP PRIMARY KEY"
Conn.Execute(sql)

Det her giver bare en synktakts fejl. Kan måske han oget at gøre med at jeg laver det med access?
Avatar billede dj_uncas Nybegynder
07. juni 2005 - 16:21 #4
hvad er syntaks-fejlen? Måske har det noget at gøre med ` prøv i stedet med ' (den knap der også laver en *). Altså:

sql = "ALTER TABLE 'test' DROP PRIMARY KEY"
Conn.Execute(sql)
Avatar billede Slettet bruger
08. juni 2005 - 14:47 #5
Min kode ser således ud
<%
Set rs = Server.CreateObject("ADODB.Recordset")
Set Conn = Server.CreateObject("ADODB.Connection")
DSN = "DRIVER={Microsoft Access Driver (*.mdb)}; "
DSN = DSN & "DBQ=" & Server.MapPath ("db.mdb")
Conn.Open DSN


sql = "alter table 'test' drop Primary Key"
Set rs = Conn.execute(Sql)
%>

Og det giver bare en uspecificeret ALTER-syntax fejl
Avatar billede dj_uncas Nybegynder
09. juni 2005 - 22:07 #6
hmm... Det lyder underligt. Har du prøvet med både ` og ' (to forskellige typer enkelt-apostrof)?

Det kan også godt være man slet ikke kan slette primary key i access, det er jeg i tvivl om..
Avatar billede Slettet bruger
10. juni 2005 - 15:44 #7
jeg har prøvet med begge og helt uden :(
Avatar billede dj_uncas Nybegynder
10. juni 2005 - 16:22 #8
Ok, nu har jeg kigget lidt på sagen, og man skal vist have en parameter mere på:

sql = "ALTER TABLE `test` DROP PRIMARY KEY CASCADE"

Jeg er ikke helt sikker på om det virker, men du kan jo prøve engang :)
Avatar billede Slettet bruger
11. juni 2005 - 21:17 #9
hmm giver stadig syntax fejl :S
Avatar billede dj_uncas Nybegynder
12. juni 2005 - 20:44 #10
Er det en SQL-fejl, eller en ASP fejl?

Jeg har læst mig frem til at JET-maskinen ikke understøtter 'ALTER TABLE' kommandoer, men da du jo bruger ADO burde det ikke være et problem. Der stod også noget om at man skulle bruge ADO's create metode, men ikke hvad det var!?

Jeg tror det enkle svar på dit spørgsmål er at "det kan man ikke med Access"...
Avatar billede dj_uncas Nybegynder
12. juni 2005 - 20:45 #11
og så fandt jeg det her:

ALTER TABLE table_name DROP PRIMARY KEY (column_name)

Men så skal du stadig kende navnet på feltet..
Avatar billede Slettet bruger
13. juni 2005 - 12:02 #12
det har jeg prøvet før, og det virkede ikke :(
Og jeg har allerede en kode der kan fortælle mig hvad det er for et felt, så det er ikke det der er problemmet ;)

men kan man ikke fjerne primærkey fra et felt? så kunne man jo bare fjerne, og så
Avatar billede Slettet bruger
13. juni 2005 - 12:03 #13
..og så slette som normalt felt bag efter (kom til at klikke enter)
Avatar billede dj_uncas Nybegynder
14. juni 2005 - 17:13 #14
Du kan jo prøve at sætte et andet felt til også at være nøglefelt, og så bagefter fjerne den første nøgle:

ALTER TABLE 'test' ADD PRIMARY KEY(ny_nøgle)
ALTER TABLE 'test' DROP PRIMARY KEY 'gammel_nøgle'
Avatar billede Slettet bruger
16. juni 2005 - 17:14 #15
det er selvføligt meget smart, men så ligger man stadig med en primær key :S
Avatar billede dj_uncas Nybegynder
23. juni 2005 - 00:03 #16
Der skal jo være en nøgle i en tabel, så det gør der jo!? Hvad havde du da tænkt dig at slette primary key for?
Avatar billede Slettet bruger
09. april 2006 - 11:30 #17
lukker
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
Kurser inden for grundlæggende programmering

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