我使用SQL Server 2008中我的程序是ROW_NUMBER與參數
SELECT ContractorID ,
Name,
ROW_NUMBER() OVER (ORDER BY ContractorID) as RowNumber
FROM dbo.Contractor
這是工作,但現在我想參數傳遞到OVER
功能。
我曾嘗試:
DECLARE @OrderBy VARCHAR(MAX)
SET @OrderBy = 'ORDER BY ContractorID'
SELECT ContractorID ,
Name,
ROW_NUMBER() OVER (@OrderBy) as RowNumber
FROM dbo.Contractor
這使錯誤 '@OrderBy附近的語法不正確'?我怎樣才能做到這一點?謝謝。
http://msdn.microsoft.com/en-us/library/aa905910 (v = sql.80).aspx –
您無法在T-SQL中對列(或表)名稱或其他關鍵字進行參數化。就像你不希望在C#中能夠通過使用字符串中的名稱來調用一個函數一樣(是的,你可以使用Reflection,但它不僅僅是一個擁有字符串並且奇蹟般地期待它的例子以調用該函數) –