我正在尝试在SQL中编写一个存储过程,就像这样..
create PROCEDURE procedure_name
(
@Name varchar,
@Price int
)
AS
BEGIN
select * from table
where Name=@Name AND Price=@Price
END
当我使用值调用存储过程时 - 约翰和14228 ..我得到一个空表。有什么我做错了吗?
当我在下面运行下面的代码片段时,我得到一个带行的输出。
select *
FROM table
WHERE Name = 'John' AND price = '14228';
任何帮助将不胜感激!感谢
答案 0 :(得分:3)
@Name
变量需要指定大小。如果指定varchar
而没有大小,则SQL Server会将其解释为varchar(1)
。因此,只使用传递给存储过程的参数的第一个字符。
@Name
的大小应与Name
列的大小相同。例如:
create PROCEDURE procedure_name
(
@Name varchar(30),
@Price int
)
...