2009-08-06 9 views
1

dbo.GetFoo()という関数があります。また、AssertEqual(@ TargetValue sql_variant、@ ExpectedValue sql_variant、@Message varchar)というユニットテストのストアドプロシージャを持っています。 '私のT-SQLステートメントは次のとおりです。関数の値をMS SQLのストアドプロシージャに渡す

exec AssertEqual dbo.GetObjectType(), 'S', 'Check If S' 

私はこのメッセージが表示されます: "DBO"

Msg 102, Level 15, State 1, Line 1 
Incorrect syntax near '.'. 

それはのどに詰まらているように見えます私はそれをリテラル文字列に渡すことができ、それはうまく動作します。

ターゲット値の変数を宣言する以外の方法はありますか?

代わりに、SQLの単体テストを行う良い方法はありますか?

答えて

5

これはT-SQLの制限です。ストアドプロシージャのパラメータとして渡されるユーザー定義の関数呼び出しが好きではありません。変数を宣言する必要があります。

関連する問題