不好意思,我刚注册,没有分,以后有一定补上
CREATE PROCEDURE SP_dbOrder_GetModel
@OrderID varchar
AS
SELECT
[OrderID],[OrderType],[CompanyName]
FROM dbOrder
WHERE [OrderID]=@OrderID
GO
这个存储过程因该没有问题吧!但我用
SP_dbOrder_GetModel '2007072812182005942'
查询出来却一条记录都没有
而
SELECT * FROM [dbOrder] WHERE OrderID="2007072812182005942" 却能查询出来OrderID是varchar(25)
我因该怎么设计了,就是根据OrderID查询'
CREATE PROCEDURE SP_dbOrder_GetModel
@OrderID varchar
AS
SELECT
[OrderID],[OrderType],[CompanyName]
FROM dbOrder
WHERE [OrderID]=@OrderID
GO
这个存储过程因该没有问题吧!但我用
SP_dbOrder_GetModel '2007072812182005942'
查询出来却一条记录都没有
而
SELECT * FROM [dbOrder] WHERE OrderID="2007072812182005942" 却能查询出来OrderID是varchar(25)
我因该怎么设计了,就是根据OrderID查询'
@OrderID varchar
=============
这里改成 @OrderID varchar(50)试试!
declare @s varchar
set @s = 'abc'
print @s-- test2
declare @s varchar(20)
set @s = 'abc'
print @s
看看上面两个test,你就知道了,最好指定变量的长度,否则sqlserver可能不按照你的意图行事。
但是有趣的是:
print convert(varchar,'abc')
看看这个又输出了什么,呵呵!
@OrderID varchar
=============
这里改成 @OrderID varchar(50)试试!