我有一个名为dbo.GetFoo()的函数。我还有一个名为AssertEqual的单元测试存储过程(它接受@TargetValue sql_variant,@ ExpectedValue sql_variant和@Message varchar)
我想调用GetFoo()并检查它是否返回正确的值'X'。我的T-SQL语句是:
exec AssertEqual dbo.GetObjectType(), 'S', 'Check If S'
我收到此消息:
Msg 102, Level 15, State 1, Line 1
Incorrect syntax near '.'.
“dbo”似乎令人窒息。 part(我可以传递一个文字字符串,它工作正常)。
除了为目标值声明一个变量外,还有其他方法吗?
或者:有没有更好的方法对SQL进行单元测试?
答案 0 :(得分:5)
这是T-SQL的一个限制:它不喜欢用户定义的函数调用作为参数传递给存储过程。你必须声明一个变量。