如何在SQL

时间:2015-11-29 02:29:24

标签: sql sql-server

我正在尝试在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';

任何帮助将不胜感激!感谢

1 个答案:

答案 0 :(得分:3)

@Name变量需要指定大小。如果指定varchar而没有大小,则SQL Server会将其解释为varchar(1)。因此,只使用传递给存储过程的参数的第一个字符。

@Name的大小应与Name列的大小相同。例如:

create PROCEDURE procedure_name
( 
  @Name varchar(30), 
  @Price int 
)
...