在存储过程中没有得到任何结果
Not getting any results in stored procedure
出于某种原因,每次我 运行 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;
我不知道我错过了什么。
声明中的varchar
默认为varchar(1)
。当您传递一个较长的字符串时,它会被截断为一个字符。
在SQL服务器中,总是用户使用字符串定义的长度:
CREATE PROCEDURE dbo.communications_getCode (
@telcode varchar(255)
) AS
BEGIN
SELECT id, code, detail
FROM tbl_telCode
WHERE [code] = @telcode;
END;
请注意,存储过程的主体包含在 BEGIN
/END
中。我发现这是一种有用的做法。
此外,没有理由为此定义存储过程。在我看来,这最好定义为一个函数。
出于某种原因,每次我 运行 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;
我不知道我错过了什么。
声明中的varchar
默认为varchar(1)
。当您传递一个较长的字符串时,它会被截断为一个字符。
在SQL服务器中,总是用户使用字符串定义的长度:
CREATE PROCEDURE dbo.communications_getCode (
@telcode varchar(255)
) AS
BEGIN
SELECT id, code, detail
FROM tbl_telCode
WHERE [code] = @telcode;
END;
请注意,存储过程的主体包含在 BEGIN
/END
中。我发现这是一种有用的做法。
此外,没有理由为此定义存储过程。在我看来,这最好定义为一个函数。