Avatar billede glacier Nybegynder
19. februar 2008 - 14:12 Der er 5 kommentarer og
1 løsning

Invalid column name (inner join)

Hej

Jeg har nogle problemer med at få min SP til at inserte data fra en select streg når jeg bruger en inner join.
Så snart jeg fjerner inner joinen virker min insert statement fint, og min select streg (inkl inner join) virker også fint. Men jeg kan ikke få min insert og select statement til at virke sammen.
Jeg får følgene fejl når jeg forsøger: Invalid column name 'StatusCode'.
hvad kan mit problem være?

Her koden:

CREATE TABLE Tabel1 (
    ID VARCHAR(255) NOT NULL,
    MfPN VARCHAR(255) NOT NULL,
    MfName VARCHAR(255) NOT NULL,
    Name VARCHAR(255) NOT NULL,
    StatusCode VARCHAR(4) NOT NULL
)

INSERT INTO Tabel1
          ([ID],[MfPN],[MfName],[Name],[StatusCode])
            SELECT ID, MfPNORA, MfName, Name, cds_Catalog.StatusCode FROM Tabel2 Inner Join Tabel3 on ID = Tabel3.ProdID
Avatar billede fennec Nybegynder
19. februar 2008 - 14:19 #1
Prøv at smide alias på så det passer med navnene (MfPNORA <-> MfPN):

INSERT INTO Tabel1
          ([ID],[MfPN],[MfName],[Name],[StatusCode])
            SELECT ID, MfPNORA as MfPN, MfName, Name, cds_Catalog.StatusCode FROM Tabel2 Inner Join Tabel3 on ID = Tabel3.ProdID
Avatar billede fennec Nybegynder
19. februar 2008 - 14:19 #2
Skulle ID ikke også have været er en Int i stedet for Varchar??
Avatar billede glacier Nybegynder
19. februar 2008 - 14:26 #3
IDet er nødvendigvis ikke et tal. Det med aliaset ændre ikke noget.
Det underlige er at hvis jeg laver 2 SP med create statementen i den ene og insert statementen i den anden virker det fint. Hvis jeg altså kører dem efter hinanden.
Avatar billede glacier Nybegynder
19. februar 2008 - 14:32 #4
Det så ud til at være en bug i MSSQL, fejlen forsvandt pludseligt. Lukker spørgsmålet
Avatar billede ramad Praktikant
19. februar 2008 - 14:34 #5
Ellers så er det altid en god ide at smide en "GO" ind imellem statements hvis du vil være sikker på at den har committet det forrige.
Avatar billede the_party_dog Nybegynder
19. februar 2008 - 14:34 #6
Har du forsøgt at ligge en GO imellem de 2 udstryk? Det lyder ikke til at sql serveren har "accepteret" at du har oprettet din tabel inden du laver din insert.

Men hvis du alligevel laver en select og vil læse det hele ind den vej igennem, hvorfor så ikke bare oprette tabellen direkte imens du laver dit kald?

ms-help://MS.SQLCC.v9/MS.SQLSVR.v9.en/udb9/html/cc9bdf10-edfc-41a5-adf1-aa9715ed8d71.htm
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