对于存储过程中传入参数是否设置默认值的心得
来源:互联网 发布:exe 端口 编辑:程序博客网 时间:2024/04/28 20:19
下面三句话是Microsoft相关网站的专业解释。
通过为可选参数指定默认值,可创建带有可选参数的存储过程。执行该存储过程时,如果未指定其他值,则使用默认值。
如果在存储过程中没有指定参数的默认值,并且调用程序也没有在执行存储过程时为该参数提供值,那么会返回系统错误,因此指定默认值是必要的。
如果不能为参数指定合适的默认值,则可以指定NULL 作为参数的默认值,并在未提供参数值而执行存储过程的情况下,使存储过程返回一条自定义消息。
create PROCEDURE [dbo].[US_Patient_Practice]
@FAgentIDint,
@FSortvarchar(50)='FFirstSite',
@FDescvarchar(4)='ASC',
@FBinDatevarchar(50),--开始时间
@FEndDatevarchar(50)--结束时间
as
declare @SSQL varchar(4000)
--US_Patient_Practice14,'FFirstSite','asc'
如上述存储过程中开始时间和结束时间是没有默认值的,下面执行存储过程语句是没有给开始时间参数中和结束时间赋值的,此时发生如下错误
消息 201,级别 16,状态 4,过程US_Patient_Practice,第 18 行
过程或函数'US_Patient_Practice' 需要参数 '@FBinDate',但未提供该参数。
在程序中调用该存储过程时,即使我们在页面上未对该参数进行赋值,只要在调用存储过程语句时,给参数赋值,就不会发生错误。
VSQL = String.Format("US_Patient_SelectPart{0},'{1}','{2}','{3}','{4}'", ddlFAgent.SelectedValue, sortField,sortDirection, tbx_FBegDate.Text, tbx_FEndDate.Text)
在vb语句中上述语句中tbx_FBegDate.Text和tbx_FEndDate.Text,即使我们在页面中没有对这俩个日期控件选择,此时其实debug下可观察到其值为””即为空字符串。
- 对于存储过程中传入参数是否设置默认值的心得
- 存储过程参数的默认值
- 存储过程参数的默认值
- SQL SERVER存储过程,参数默认值设置
- SQL SERVER存储过程,参数默认值设置
- 存储过程/SQL中参数传入传出的写法
- 存储过程参数的时间默认值解决方法
- 存储过程参数的时间默认值解决方法
- 存储过程--参数默认值的问题
- 存储过程传入DataTable参数
- Oracle 存储过程的默认值参数和过程中的事务处理
- Sql Server 2008中存储过程传入表值参数
- Sql Server 2008中存储过程传入表值参数
- oracle存储过程中传入日期参数,插入到表
- Sql Server 2008中存储过程传入表值参数
- Oracle数据库中使用存储过程时对传入和传出参数的使用说明
- Oracle存储过程传入类似java中list、数组类型的参数并使用
- T-SQL中存储过程输出参数的默认值有何用?
- QT tcpsocket 发送/接收数据
- nginx.conf
- android NDK报错映射JNI
- gcc编译选项
- Linux添加定时任务
- 对于存储过程中传入参数是否设置默认值的心得
- CCF计算机软件能力认证试题练习-数列分段(Java参考答案学习记录)
- iOS 通过定位获取常驻后台
- matlab 函数集锦
- 完整的拆分nginx访问日志
- bzoj1022 [SHOI2008]小约翰的游戏John
- ArrayList 、LinkedList和Vector比较
- FFmpeg中java调用(3)
- NPAPI插件开发