2

日時を nvarchar(64) に変換したいと思います。次のコードは、一連のストアド プロシージャ パラメーターの一部として使用されるスニペットです。エラーのある領域を含めました。

KEYWORD 'CONVERT' 付近の不適切な構文

exec mysproc...@Password=N'',@IsAuthorized=1,
@UTCTIMESTAMP=CONVERT(NVARCHAR(64), GETUTCDATE(), 121),
@UserId=@SingleId output

この構文の何が問題なのですか?

4

1 に答える 1

6

ストアド プロシージャを呼び出す前に、このような計算を実行する必要があります。値をパラメーターに渡すプロセス内では実行できません。例えば:

DECLARE @utc NVARCHAR(64) = CONVERT(NVARCHAR(64, GETUTCDATE(), 121);

EXEC mysproc 
  @Password = N'',
  @IsAuthorized = 1,
  @UTCTIMESTAMP = @utc,
  @UserId = @SingleId OUTPUT;

これは関数呼び出しに限定されません。次のようなこともできません。

EXEC sp_help @objname = N'sys.' + 'tables';

結果:

Msg 102, Level 15, State 1, Line 1
Incorrect syntax near '+'.
于 2013-01-18T22:48:19.343 に答える