2011-11-22 54 views
0

我想要一個函數,它會將特定表中的所有記錄返回給我。 函數的輸入參數是表名。如何將表名稱作爲參數發送到ms sql函數時從表中選擇記錄

任何人都可以幫我嗎?

+2

你應該給我們更多的信息,但在總體上是這樣的。 'select * from'。 $表 – zaoudis

+0

我需要一個函數。輸入參數是表名,它是一個字符串。我需要輸出作爲該表的所有記錄。我不能做直接選擇*因爲我發送的表名是字符串 –

+1

@NitheshKumarKuntady我發佈了一個答案,但你能解釋你的要求嗎?你需要什麼樣的功能?你可以用適當的表名簡單地執行查詢嗎? –

回答

4

您需要動態構建您的查詢。有關更多信息,請參閱The Curse and Blessings of Dynamic SQL

declare @TableName sysname = 'TableName' 
declare @sql nvarchar(max) = 'select * from '+quotename(@TableName) 
exec (@sql) 

爲一個存儲過程就應該是這樣的:

create procedure GetAll 
    @TableName sysname 
as 

declare @sql nvarchar(max) = 'select * from '+quotename(@TableName) 
exec (@sql) 

而作爲Rashmi Kant Shrivastwa在評論中指出,你不能使用動態SQL用戶定義的函數。

1

你不能使用動態sql查詢函數。您想要的結果,您可能需要 SQL-CLR函數

的幫助,您可以檢查this linkthis one它可以幫助你

相關問題