0

これらのステートメントの何が問題になっていますか?

ALTER PROCEDURE [cfg].[SetBooleanConfiguration]
@key varchar(50),
@value bit
AS
BEGIN

    exec cfg.SetConfiguration @key=@key, @datatype='Boolean', @value=CONVERT(varchar(4000),@value)

END

MSDNによると、CONVERT構文は適切に記述されていると確信しています。しかし、SSMS は、近くに間違った構文があると文句を言いますCONVERT。どうしたの?

編集:

以下のステートメントはうまく動作します:

exec cfg.SetConfiguration @key='aa', @datatype='Boolean', @value='1'

しかし、以下のステートメントは私にエラーを与えます:

exec cfg.SetConfiguration @key='aa', @datatype='Boolean', @value=CONVERT(varchar(4000),1)
4

2 に答える 2

1

@valueのデータ型はビットですか?varchar(4000)に変換しようとしていますか?

于 2013-01-09T03:39:28.663 に答える
1

これを試して

ALTER PROCEDURE [cfg].[SetBooleanConfiguration]
@key varchar(50),
@value bit
AS
BEGIN
    DECLARE @convertedValue varchar(1)

    SET @convertedValue=CONVERT(varchar(1),@value)

    exec cfg.SetConfiguration @key=@key, @datatype='Boolean', @value=@convertedValue

END 
于 2013-01-09T03:40:08.197 に答える