sql—在存储过程中不获取任何结果

wfsdck30  于 2021-07-26  发布在  Java
关注(0)|答案(1)|浏览(361)

出于某种原因,每次我运行exec

communications_getCode @telCode='MX'

我得到的结果是空的。我知道我错过了什么,因为如果我跑了

Select * from tbl_telCode where code = 'MX'

我得到结果(准确地说是1)。但如果我尝试这个过程,我会得到空白结果

CREATE PROCEDURE dbo.communications_getCode
    @telcode varchar
AS
    SELECT 
        id, code, detail
    FROM 
        tbl_telCode
    WHERE
        [code] = @telcode;

我不知道我错过了什么。

webghufk

webghufk1#

这个 varchar 在声明中默认为 varchar(1) . 当您传递较长的字符串时,它将被截断为一个字符。
在sql server中,始终使用字符串定义指定长度:

CREATE PROCEDURE dbo.communications_getCode (
    @telcode varchar(255)
) AS
BEGIN
    SELECT id, code, detail
    FROM tbl_telCode
    WHERE [code] = @telcode;
END;

请注意,存储过程的主体被 Package 在 BEGIN / END . 我发现这是一个有用的做法。
而且,没有理由为此定义存储过程。在我看来,最好把它定义为一个函数。

相关问题