0

ユーザー定義変数を使用して、SQLCMD を使用してバッチ ファイルを介して SP をトリガーすることにより、ストアド プロシージャを機能させようとしています。ハードコーディングされた変数を使用してこの方法でテストしたため、ストアド プロシージャが機能することは既に確認できます。参考までに、これはバッチ ファイルのコードです。

SET /P Param1 = Enter job number here:
SET /P Param2 = Enter number for current status here:

sqlcmd -S DevTest -d test_database -Q "EXEC dbo.JStatUpd @jobNum = Param1, @stat = Param2"

PAUSE

(編集:参照しやすいように、sqlcmd行をそのまま残しました。)

私の問題は、ユーザー定義変数の操作にあります。具体的には、ユーザー定義変数の変換で問題が発生しています。変数は両方とも整数でなければなりません。SETすべての変数が として自動的に入力されることは認識していますが、それらを;nvarcharに変換する方法を見つけることができませんでした。intCAST または CONVERT を使用して試行するたびにエラーが発生しました。

私の質問は: SQLCMD インライン クエリ内で CAST または CONVERT を使用して変数を変換することは可能ですか? それとも、別の方法を使用する必要があるときに、これを間違った方法で行っていますか?

4

1 に答える 1

0

@Nishad は正しい考えを持っていましたが、他の何かにも修正が必要であることが判明しました。徹底的にするために、ここに私が使用した最終的なバッチファイルコードがあります:

SET /P Param1 = Enter job number here:
SET /P Param2 = Enter current status here:

sqlcmd -S DevTest -d test_database -Q "EXEC dbo.JStatUpd @jobNum=N'%Param1%', @stat=%Param2%"

PAUSE

ユーザーが入力した値を実際に正しく機能させることができたのは、この特定の書式設定のみでした。@echo は、何を入力しても空白になることを示したので、クエリ パラメータの形式をいじり始めたところ、これが機能することがわかりました。

于 2013-05-30T13:54:47.847 に答える