这是我的程序:
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'
答案 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