| 
					
							
        
    
        
						
			 | 
			
			
					    
					
        
         
          
         
	
            | MSSQL 2005 og 2-felts primary key Fra : Janus | 
  Dato :  29-01-07 21:51 |  
  |   
            Hej NG!
 
 Jeg er ved at oprette en database i MSSQL 2005.
 Jeg vil gerne have en tabel, hvor PK består af 2 felter. Tabellen Table1 
 har 2 felter, hhv. "name" (varchar) og "version" (int) således at:
 
 tupel (A, 1) er ok
 tupel (A, 2) er ok
 tupel (B, 1) er ok
 tupel (B, 2) er ok
 
 -men at det så selvfølgelig ikke kan lade sig gøre at indsætte tuplerne 
 mere end én gang :)
 
 Jeg har forsøgt mig med: add constraint const_Table1 primary key (name, 
 version)
 
 -og det æder SQL enginen fint nok, der kommer endda også 2 
 nøgle-tegninger ud for de to felter i det dér database management program.
 
 Menmenmen, ak og ve! Jeg kan fint indsætte eksempelvis (A, 1) og (M, 6), 
 men jeg kan skisme ikke indsætte (B, 1) eller (Q, 1)! Er den constraint 
 jeg har sat op rent faktisk to individuelle PK's?
 
 Jeg er dum-i-arbejde mht. SQL, og har ingen erfaringer med Microsofts 
 databaser, så bær over med mig...
 
 
 Pft,
 Janus
 
 
 
  
            
             |   |   
            
        
 
            
         
           Anders Matthiessen (30-01-2007) 
         
	
            | Kommentar Fra : Anders Matthiessen | 
  Dato :  30-01-07 12:14 |  
  |  
 
            "Janus" <invalid@invalid.dk> wrote in message 
 news:45be5e46$0$4175$ba624c82@nntp02.dk.telia.net...
 > Jeg er ved at oprette en database i MSSQL 2005.
 > Jeg vil gerne have en tabel, hvor PK består af 2 felter. Tabellen Table1 
 > har 2 felter, hhv. "name" (varchar) og "version" (int) således at:
 Den her vil kunne hjælpe dig   
http://www.thescripts.com/forum/thread79190.html
/Anders
            
              |   |   
            
        
 
            
         
           Jens Gyldenkærne Cla~ (30-01-2007) 
         
	
            | Kommentar Fra : Jens Gyldenkærne Cla~ | 
  Dato :  30-01-07 13:30 |  
  |   
            Janus skrev:
 
 > Jeg har forsøgt mig med: add constraint const_Table1 primary
 > key (name, version)
 
 Hvordan ser din præcise sql-sætning ud?
 
 > -og det æder SQL enginen fint nok, der kommer endda også 2
 > nøgle-tegninger ud for de to felter i det dér database
 > management program.
 
 Det lyder rigtigt.
 
 
 > Menmenmen, ak og ve! Jeg kan fint indsætte eksempelvis (A, 1)
 > og (M, 6), men jeg kan skisme ikke indsætte (B, 1) eller (Q,
 > 1)! Er den constraint jeg har sat op rent faktisk to
 > individuelle PK's?
 
 Nej. Der kan ikke være to PK'er i en tabel, så det er ikke derfor
 at dine indsættelser fejler. Har du evt. defineret et andet unikt
 indeks på felterne?
 
 Følgende test-script fungerer fint her:
 
 
 CREATE TABLE test (
    name varchar(3) NOT NULL,
    version int NOT NULL,
    info varchar(100),
    PRIMARY KEY (name, version)
 )
 
 GO
 INSERT INTO test (name, version)
 VALUES ('A', 1)
 INSERT INTO test (name, version)
 VALUES ('A', 2)
 INSERT INTO test (name, version)
 VALUES ('Q', 1)
 -- 3 rækker indsat, tjek med select:
 
 SELECT * FROM test
 
 -- Test en dubletindsættelse (MSSQL vil afvise indsættelsen)
 INSERT INTO test (name, version)
 VALUES ('A', 2)
 -- 
 Bolig søges. Andel eller leje i Emdrup, Nordvest, Nørrebro, Søborg
 eller Brønshøj, max 6000 pr. måned.
 Kontakt pr. mail - nospam(at)gyros.dk
 Jens Gyldenkærne Clausen
  
            
             |   |   
            
        
 
            
         
           Janus (17-02-2007) 
         
	
            | Kommentar Fra : Janus | 
  Dato :  17-02-07 10:16 |  
  |   
            Jens Gyldenkærne Clausen wrote:
 > Janus skrev:
 > 
 >> Jeg har forsøgt mig med: add constraint const_Table1 primary
 >> key (name, version)
 > 
 > Hvordan ser din præcise sql-sætning ud?
 > 
 >> -og det æder SQL enginen fint nok, der kommer endda også 2
 >> nøgle-tegninger ud for de to felter i det dér database
 >> management program.
 > 
 > Det lyder rigtigt.
 > 
 > 
 
 -Og det var også rigtigt nok! Jeg påtager mig hele skylden og deler 
 kvajebajere ud til højre og venstre: Jeg havde glemt at fjerne 
 keyword'et "UNIQUE" fra de to kolonner, der indgik i min PK constraint 
 (SQL'en konverteret fra McKoi-format).
 
 Btw, undskyld det sene svar
 
 
 Vh Janus
  
            
             |   |   
            
        
 
            
         
           Jens Gyldenkærne Cla~ (17-02-2007) 
         
	
            | Kommentar Fra : Jens Gyldenkærne Cla~ | 
  Dato :  17-02-07 17:36 |  
  |  
 
            Janus skrev:
 > -Og det var også rigtigt nok! Jeg påtager mig hele skylden og
 > deler kvajebajere ud til højre og venstre:
 Super - hvor skal vi hente dem?
 > Btw, undskyld det sene svar
 Helt i orden.
 -- 
 Jens Gyldenkærne Clausen
 Svar venligst under det du citerer, og citer kun det der er
 nødvendigt for at forstå dit svar i sammenhængen. Se hvorfor og
 hvordan på  http://usenet.dk/netikette/citatteknik.html
            
             |   |   
            
        
 
    
 
					
					 
			 | 
			
				
        
			 |