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 回答