2011-02-05 29 views

回答

1

你不能參數化表名作爲decalred @tblName。你將需要使用動態SQL(不是這在函數中是允許的)。

您可能可以使用View或CTE,這是一個固定的表和常量列表,用於執行您正在嘗試執行的任何操作。你已經發布的代碼沒有什麼意義 (您想@val2具有相同的價值@tblName如果一個表叫@tblName值包含在val1列?這個相同的值),如

;WITH cte AS 
(
SELECT 'table1' AS table_name, val1 
FROM table1 
UNION ALL 
SELECT 'table2' AS table_name, val1 
FROM table2 
) 
select @val2=val1 from cte where [email protected] and val1 = @tblName 
+0

但我卻什麼想要使泛化函數將表名作爲參數,上面的查詢建議我做一個硬編碼值函數。我的要求是完全不同的,函數應該被稱爲任何表名作爲參數 – NoviceToDotNet 2011-02-05 09:30:19

1

@ tblName1在功能參數

相關問題