Use pubs
create procedure Rotta as
begin
select distinct ColonnaCheNonEsiste from authors a
inner join dbo.#gino g on AliasCheNonesiste.au_id = g.au_id
end
Ora non so quale sia il comportamento di SQL2005 (ce l'ho su un altro PC) ma questa SP viene compilata correttamente. Posso capire che le veriche sintattiche sulla riga blu, che referenziano una tabella temporanea, non siano fatte (e quindi che passi AliasCheNonEsiste), ma almeno la prima parte (ColonnaCheNonEsiste) secondo me dovrebbe essere controllata...
Edit delle sette di sera:
Dopo aver letto i commenti qualche dettaglio su cosa intendo dire:
1) Se nella creazione della SP sopra commentate la riga in azzurro col cavolo che SQL vi passa la compilazione. Dice che ColonnaCheNonEsiste non esiste e non va avanti. Il comportamento che a me non piace è che perchè nella SP introduco UN riferimento ad una tabella temporanea praticamente non mi viene fatto più un check a parti che invece rimangono controllabili. Quindi in realtà il comportamento del check sintattico dipende dalla struttura della SP stessa, cosa comprensibile, ma solo fino ad un certo punto
2) Se volete un altro esempio di comportamento incoerente di SQL 2000 potete provate a creare una View che referenzi una Function che non esiste. La view non c'è modo di crearla. Quindi, anche in questo caso, delayed poco (in Oracle esiste l'opzione Create Force View che serve proprio a questo). E' un problema banale, se non fosse che il tool che uso per generare il DB si ostina a creare prima le view e poi le function
posted @ giovedì 1 dicembre 2005 16:34