Ho una procedura immagazzinata e parte di essi, come di seguito: @DRange è un valore varchar entranteUso tabella temporanea con @sql exec nella procedura immagazzinata
declare @sql varchar(max)
set @sql = 'select * into #tmpA from TableA where create_date >= getDate - ' + @DRange + '' and is_enabled = 1'
exec (@sql)
select * from #tmpA
Il problema è quando eseguire la stored procedure, si verifica un messaggio di errore: Impossibile trovare l'oggetto "#tmpA" perché non esiste o non si dispone delle autorizzazioni.
Non è possibile utilizzare la tabella temporanea ed eseguirla o ho fatto qualcosa di sbagliato?
Perché si utilizza SQL dinamico? Non puoi avere una normale query 'select * in #tmpA da TableA dove create_date> = getDate - @DRange e is_enabled = 1'? Covert @Diaggi in altro tipo se necessario –
Perché dovrò combinare l'altro parametro, come il nome del database nella query. –