Create Procedure A(@p varchar)
as
select b from a where b='bb'
-----------------------------
执行,有一条bb记录。
但是换成:
Create Procedure A(@p varchar)
as
select b from a where b=@p
-----------------------------
然后测试,将@p赋值 bb,但是没有记录。
为什么?太奇怪了。
...全文
1118打赏收藏
存储过程参数问题?
Create Procedure A(@p varchar) as select b from a where b='bb' ----------------------------- 执行,有一条bb记录。 但是换成: Create Procedure A(@p varchar) as select b from a where b=@p ----------------------------- 然后测试,将@p赋值 bb,但是没有记录。 为什么?太奇怪了。
Create Procedure A(@p varchar)
as
select b from a where b='bb'
-----------------------------
执行,有一条bb记录。
--因为没有使用到参数
但是换成:
Create Procedure A(@p varchar)
as
select b from a where b=@p
-----------------------------
然后测试,将@p赋值 bb,但是没有记录。
--这是因为参数@p没有说明长度,系统只取第一个字符,应该说明长度
Create Procedure A(@p varchar(20)) --这样就能查询到
as
select b from a where b=@p