Sql过程不起作用

时间:2017-03-23 20:21:16

标签: sql-server ssms

这是我的程序:

CREATE PROCEDURE spDelManu(
    @manuName VARCHAR
)
AS BEGIN
    SELECT * FROM tbProducts WHERE itemManu = @manuName
END
GO

这里我尝试执行该程序,但没有任何显示。

EXEC spDelManu @manuName='EVGA'

但是,如果我运行此查询它将起作用,我得到结果。为什么它不能与proc中创建的变量一起使用?

SELECT * FROM tbProducts WHERE itemManu = 'EVGA'

2 个答案:

答案 0 :(得分:3)

您需要为varchar

设置尺寸
CREATE PROCEDURE spDelManu(
    @manuName VARCHAR
)
AS BEGIN
    select @manuName
END
GO

EXEC spDelManu @manuName='EVGA'

返回:E

Bad habits to kick : declaring VARCHAR without (length) - Aaron Bertrand

答案 1 :(得分:3)

叹息,总是声明你的varchar的长度:

CREATE PROCEDURE spDelManu(
    @manuName VARCHAR(10)
)
AS BEGIN
    SELECT * FROM tbProducts WHERE itemManu = @manuName;
END

实际上,它的默认值为1