我想在SQL Server中創建一個標量函數。我已經創造了select語句如下:在標量函數sql server中執行動態查詢
SET @Statement1 = 'SELECT 1 FROM ' + @p_TableName +
' WHERE RegionTypeID = 1 AND RegionID = ' +
CONVERT (nvarchar (50), @p_RegionID)
這裏@p_TableName
是表(爲nvarchar(500))的名稱和@p_RegionID
是唯一標識符。
我現在執行上述聲明如下:
EXEC @ReturnValue1 = @Statement1
WHERE @ReturnValue1
爲int。
但是,當我把這個功能從其他地方我得到這個錯誤:
The name 'SELECT 1 FROM [PS].[Availability] WHERE RegionTypeID = 1 AND RegionID = AF4C182C-F751-41AD-AA6A-20A50A7A38C8' is not a valid identifier.
我需要知道我可以從一個標量函數中調用動態SQL SELECT語句。
動態SQL不容許UDF的。檢查[這裏](http://www.sommarskog.se/dynamic_sql.html#UDF)以獲取有關該主題的良好參考。 –
謝謝...你能爲我的問題建議一個解決方法嗎?有沒有其他的方法可以寫出上面給出的select語句?我需要的是知道RegionTypeID和RegionID是否存在? –
@SarinGopalan你可以使用存儲過程(SP)而不是函數。如果你需要的話,SP的結果可以寫在表格中。 – gofr1