SQL Serverでスカラー関数を作成しようとしています。次のように私はselect文を造語している:ここでp_TableName
@スカラー関数SQL Server内で動的クエリを実行する
SET @Statement1 = 'SELECT 1 FROM ' + @p_TableName +
' WHERE RegionTypeID = 1 AND RegionID = ' +
CONVERT (nvarchar (50), @p_RegionID)
は、テーブルの名前(データ型はnvarchar(500))であるとp_RegionID
@ uniqueidentifierです。
次のように私は今、上記のステートメントを実行しています:
@ReturnValue1
はintで
EXEC @ReturnValue1 = @Statement1
。
しかし、私は他の場所からこの関数を呼び出すときに、私はこのエラーを取得:
The name 'SELECT 1 FROM [PS].[Availability] WHERE RegionTypeID = 1 AND RegionID = AF4C182C-F751-41AD-AA6A-20A50A7A38C8' is not a valid identifier.
私はスカラー関数内からの動的SQL SELECTステートメントを呼び出すことができる方法を知っておく必要があります。あなたは、出力パラメータを以下のようにSPを作成することができます
動的SQLがで許可されていませんUDF。このトピックについては、[こちら](http://www.sommarskog.se/dynamic_sql.html#UDF)を参照してください。 –
ありがとうございます。私の問題の回避策を提案できますか?上記のselect文を書くことができる他の方法はありますか?私が必要とするのは、RegionTypeIDとRegionIDが存在するかどうかを知ることだけです。 –
@SarinGopalan関数の代わりにストアドプロシージャ(SP)を使用できます。必要ならば、SPの結果を表に書くことができます。 – gofr1