请看下面这个PROCEDURECREATE PROCEDURE aa @a INT=0,
@b INT=0 OUTPUT
ASPRINT @a
PRINT @b
GO
---------------------------在查询分析器中
DECLARE @e INT
EXEC AA
@b=@e OUTPUT
SELECT @e
-----返回NULL
--------------------------即使不给@b赋值,按说由于我已在PROCEDURE里定义了@b INT=0,因此应该返回0才对啊,为什么是NULL呢?通过在PROCEDURE里直接PRINT @a、PRINT @b也可看出,实际上给带OUTPUT返回参数变量赋默认值似乎是无效的。偶的基本功不扎实啊,请兄弟们指教!
@b INT=0 OUTPUT
ASPRINT @a
PRINT @b
GO
---------------------------在查询分析器中
DECLARE @e INT
EXEC AA
@b=@e OUTPUT
SELECT @e
-----返回NULL
--------------------------即使不给@b赋值,按说由于我已在PROCEDURE里定义了@b INT=0,因此应该返回0才对啊,为什么是NULL呢?通过在PROCEDURE里直接PRINT @a、PRINT @b也可看出,实际上给带OUTPUT返回参数变量赋默认值似乎是无效的。偶的基本功不扎实啊,请兄弟们指教!
解决方案 »
- ADO连接sql server 2005数据库,_RecordsetPtr的Update()有时更新不成功
- 关于在远程服务器上创建表的问题
- 请教service broker的问题
- 请教一个的SQL查询的问题
- 【急求】SqlServer2008附加数据库成功后,自动把数据库版本转换成了2008的,怎么办?
- 是触发器造成的死锁?
- 救命,MSSQLSERVER SA密码忘了
- ASP+SQLserver怎么实现分页显示?
- >>>【SQL 语句难题,各位进来挑战一下!】<<<
- 那大哥们,用程序生成SQL语句再送到ACCESS和在ACCESS里建立查询再调用查询有什么区别?比较慢吗?
- 请教一个搜索性能的问题
- 软件按什么标准收取维护费?多谢!
EXEC AA @b=@e OUTPUT /*为参数@b赋值@e,而@e为NULL,所以@b也为NULL*/这样试试:
DECLARE @e INT
set @e = 0 /*为参数指定初值*/
EXEC AA @b=@e OUTPUT