出于某种原因,每次我运行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;
我不知道我错过了什么。
1条答案
按热度按时间webghufk1#
这个
varchar
在声明中默认为varchar(1)
. 当您传递较长的字符串时,它将被截断为一个字符。在sql server中,始终使用字符串定义指定长度:
请注意,存储过程的主体被 Package 在
BEGIN
/END
. 我发现这是一个有用的做法。而且,没有理由为此定义存储过程。在我看来,最好把它定义为一个函数。