19. februar 2008 - 14:12Der 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
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
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.
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?
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.