Sorunum bir yürütmede bir tablo değişkeni kullanıyor. Geçici tablo i orijinal geçici tablo kullanılarak çalışılmıştır bildirildi ve işe yaradı, ama benim varlık model.So güncellemeye çalışırken ben sorunları vardıTablo değişkenini kullanarak dinamik sql -TSQL
declare @sort_col nvarchar(1000) = 'itm_id'
declare @sort_dir nvarchar(4) = 'desc'
declare @filters nvarchar(1000) = ' and itm_name like ''%aa%'''
declare @temp table
(
itm_id int
)
insert into @temp
EXEC('select itm_id from Tblitm where itm_name not like ''%aa%''')
EXEC('select * from (select (ROW_NUMBER() OVER (ORDER BY '[email protected]_col+' '[email protected]_dir+')) row_num, * FROM (select itm_id, itm_name,
dbo.fnItmsHistory(itm_id) itm_history
from dbo.Tblitm as itm
left outer join '[email protected]+' as temp on itm.itm_id = temp.itm_id
where itm_id=itm_id and temp.itm_id = null '[email protected]+') as x) as tmp')
Öyle skaler değişken "@temp" ilan Must orada herhangi diyor Bu sorun için çözüm?
Not: Yürütücüyü kullanmalıyım çünkü süzgeçlerde, hangi yan tümce dizesini saklıyorum.
#temp yerine #temp kullanın ve sadece bir değişken adı gibi davranmak yerine EXEC() öğesinde #temp referansını kullanın. –
Bkz. [Dinamik tablo ifadesi SQL Server'a ekleme] (http://stackoverflow.com/questions/5196434/dynamic-insert-into-variable-table-statement-sql-server) –
@AaronBertrand Sorguyu işlevsel hale getirdim Bu, ama benim modelimi güncellerken sorunları vardı, bu yüzden bu düzeltmeyi kullanamayacağından korkuyorum. – Aleks