2012-08-22 34 views
0
Select * from table1 where name = 'sam' 

這裏name = 'sam'它是靜態部分。動態部分是表名。作爲輸入段,我如何將表名稱傳遞給sp 。如何在sp中的查詢子句中傳遞參數?

Create Procedure Proc_sp1 
(
@table varchar(10) 
) 
as 
Select * from @table where name = 'sam' 

我知道,需要使用sp_executesqland使用'[email protected]+'查詢。除sp_executesql之外是否有其他選擇?

回答

0

如果你有一組特定的表,你可以傳遞參數,並用「的if-else」的條件下,這臺將用於選擇:

僞:

IF @TableName = 'TableA' 
BEGIN 
    SELECT * FROM TableA WHERE .... 
END 
ELSE IF @TableName = 'TableB' 
BEIN 
    SELECT * FROM TableA WHERE .... 
END