这些陈述有什么问题?
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)
答案 0 :(得分:1)
@value的数据类型是bit?您是否尝试将其转换为varchar(4000)?
答案 1 :(得分: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