0

我有一个存储过程,当我注释掉一个简单的IF语句时可以很好地建模:

IF LEN(@myVariable) > 0
    BEGIN
        SET @myVariable = SUBSTRING(@myVariable, 1, LEN(@myVariable)-1)
    END

如果我不注释掉这一行,我会收到错误:

无法检测到以下存储过程的返回类型。在“属性”窗口中设置每个存储过程的返回类型。dbo.my_stored_procedure

为什么这个语句会导致返回类型的自动生成失败?

当我注释掉这行代码时,我得到了我期望的返回类型,以及它的所有属性(在 DBML 中自动建模)

有没有我缺少的设置?

提前致谢...

4

1 回答 1

0

感谢 Gert 让我朝着正确的方向前进。更改语句后,存储过程正确建模,没有任何问题:

IF LEN(@myVariable) > 0
    BEGIN
        SET @myVariable = SUBSTRING(@myVariable, 1, LEN(@myVariable)-1)
    END

至:

IF LEN(@myVariable) > 0
    BEGIN
        SET @myVariable = LEFT(@myVariable, NULLIF(LEN(@myVariable)-1, -1))
    END
于 2013-08-27T15:54:49.327 回答