2009-08-06 11 views
1

Ich habe eine Funktion namens dbo.GetFoo(). Ich habe auch eine Unit-Test Stored Procedure namens AssertEqual (@ @ TargetValue sql_variant, @ExceptedValue sql_variant und @Message varchar)Übergeben Sie Funktion Wert an gespeicherte Prozedur in MS SQL

Ich möchte GetFoo() aufrufen und überprüfen, ob es den richtigen Wert 'X zurückgibt ". Mein T-SQL-Anweisung lautet:

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

ich diese Meldung: "dbo"

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

Es erscheint auf dem zu ersticken Teil (Ich kann es eine wörtliche Zeichenfolge übergeben und es funktioniert gut).

Gibt es einen anderen Weg, als eine Variable für den Zielwert zu deklarieren?

Alternativ: Gibt es eine bessere Möglichkeit, Komponententests für SQL durchzuführen?

Antwort

5

Das ist eine Einschränkung von T-SQL: Es mag keine benutzerdefinierten Funktionsaufrufe, die als Parameter an eine gespeicherte Prozedur übergeben werden. Sie müssen eine Variable deklarieren.

Verwandte Themen