Ich habe eine gespeicherte Prozedur und einen Teil von ihnen, wie unten: @DRange ist ein eingehender varchar WertMit temporärer Tabelle mit exec @sql in gespeicherte Prozedur
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
Das Problem ist, wenn ich die gespeicherte Prozedur ausführen, eine Fehlermeldung tritt auf: Kann das Objekt "#tmpA" nicht finden, da es nicht existiert oder Sie keine Berechtigungen haben.
Ist es nicht möglich, temporäre Tabelle zu verwenden und auszuführen oder habe ich etwas falsch gemacht?
Warum verwenden Sie dynamisches SQL? Kannst du nicht eine normale Abfrage haben? Wähle * in #tmpA aus TableA wo create_date> = getDate - @DRange und is_enabled = 1'? Verdeckte @DRange in verschiedenen Typen bei Bedarf –
Weil ich den anderen Parameter wie den Datenbanknamen in die Abfrage kombinieren muss. –