我有這樣如何兩個動態SQL與工會結合所有
@sql = 'select productname,year from products'
@sql2 = 'select productname,year from products_sample'
兩個動態SQL查詢,我需要的是這樣的
select @query= (@SQL+'UNION ALL' [email protected])
,但它不工作
任何幫助
我有這樣如何兩個動態SQL與工會結合所有
@sql = 'select productname,year from products'
@sql2 = 'select productname,year from products_sample'
兩個動態SQL查詢,我需要的是這樣的
select @query= (@SQL+'UNION ALL' [email protected])
,但它不工作
任何幫助
試試這個
declare @SQL varchar(200)
declare @sql2 varchar(200)
declare @sqlresult varchar(200)
set @SQL = 'select productname,year from Products'
set @sql2 = 'select productname,year from products_sample'
set @[email protected]+' UNION ALL ' [email protected]
exec @sqlresult
嘗試
@sql = 'select productname,year from products'
@sql2 = 'select productname,year from products_sample'
sp_executeSQL @SQL+' UNION ALL ' [email protected]
需要被'EXEC sp_executeSQL'。對於批次中的第一條語句,「EXEC」只是可選的。也不能在存儲過程參數列表本身中進行連接。 – 2012-07-18 06:53:45
是的。上述問題的答案是展示這個想法。 – PraveenVenu 2012-07-18 06:56:05
那麼顯示工作代碼會更有用。也不要在存儲過程參數列表中使用括號。應該使用'sp_executesql'來處理區分大小寫的排序規則,並且您要連接的變量具有不同的名稱,然後是上面指定的名稱。 – 2012-07-18 07:00:23
由於查詢不是在所有參數化也可以簡單地使用
EXEC (@SQL + ' UNION ALL ' + @SQL1)
感謝所有的答覆。 – syncdm2012 2012-07-18 07:18:21
需要是'exec(@sqlresult)'。如果沒有括號,SQL Server會查找名爲'select productname的存儲過程,從Products UNION ALL中選擇年份,從products_sample'中選擇year,而不是執行字符串本身。 – 2012-07-18 07:11:30