sql server-SQLSERVER能为存储过程设置默认值吗?

问题描述

SQLSERVER能为存储过程设置默认值吗?

现在的情况是这样
针对服务器旧版和新版
某一个存储过程中,旧版的输入参数只有3个,而新版的输入参数有5个。
我希望在执行该存储过程的时间,若输入参数只有三个(后面两个输入参数缺失)时,
该存储过程自动为后面两个缺失值的输入参数赋一个默认值。
请问可以只修改存储过程达到这目的的?

用的SQLSERVER是2005版的

解决方案

例子:
create procedure pro_Name(
@cNo varchar(8),
@cName varchar(20)= '%'
)
as
begin
SQL 语句集……

end;
go
exec pro_name '10002' ,'%'

exec pro_name '10002'
都可以 ,不会报错。


解决方案二:

在新数据库建表的时候,在后两个属性加上default:

解决方案三:


CREATE PROCEDURE [dbo].[up_TEST]
@A nvarchar(50),
@B nvarchar(50),
@C nvarchar(50)
AS

改为

CREATE PROCEDURE [dbo].[up_TEST]
@A nvarchar(50),
@B nvarchar(50),
@C nvarchar(50),
@D nvarchar(50) = '01' ,
@E nvarchar(50) = '02'
AS

时间: 2025-01-20 09:12:37

sql server-SQLSERVER能为存储过程设置默认值吗?的相关文章

sqlserver-如何获取SQL SERVER 2008 存储过程参数默认值

问题描述 如何获取SQL SERVER 2008 存储过程参数默认值 比如我的存储过程创建语句如下: CREATE PROC [dbo].[SearchBillDetail] ( @OpBeginDate DATETIME , @OpEndDate DATETIME , @BillTypeID INT , @BillOperType INT , @SaleOperID INT = 1, @DrCompID INT = NULL ) AS SET NOCOUNT ON -- 后面省略 这是我需要通

SQL Server联机丛书:存储过程及其创建

server|创建|存储过程  存储过程可以使得对数据库的管理.以及显示关于数据库及其用户信息的工作容易得多.存储过程是 SQL 语句和可选控制流语句的预编译集合,以一个名称存储并作为一个单元处理.存储过程存储在数据库内,可由应用程序通过一个调用执行,而且允许用户声明变量.有条件执行以及其它强大的编程功能.存储过程可包含程序流.逻辑以及对数据库的查询.它们可以接受参数.输出参数.返回单个或多个结果集以及返回值. 可以出于任何使用 SQL 语句的目的来使用存储过程,它具有以下优点: 可以在单个存储

在SQL Server中重新编译存储过程

在执行诸如添加索引或更改索引列中的数据等操作更改了数据库时,应重新编译访问数据库表的原始查询计划以对其重新优化.在 Microsoft SQL Server 2005 重新启动后第一次运行存储过程时自动执行此优化.当存储过程使用的基础表发生变化时,也会执行此优化.但如果添加了存储过程可能从中受益的新索引,将不自动执行优化,直到下一次 Microsoft SQL Server 重新启动后再运行该存储过程时为止.在这种情况下,强制在下次执行存储过程时对其重新编译会很有用. 必要时,强制重新编译存储过

SQL server 2012数据库某字段超过某个值短信提醒?

问题描述 SQL server 2012数据库某字段超过某个值短信提醒? SQL server 2012数据库某字段超过某个值短信提醒? 解决方案 这个问题有人问过了,我详细回答过了,移步http://ask.csdn.net/questions/235536 解决方案二: 给手机发送短信,是要通过运营商提供接口的. 解决方案三: 设置触发器,发现符合某个条件了,调用程序,然后程序再进行短信发送处理 解决方案四: 可以通过创建存储过程,由存储过程发送短信请求,触发器生成url参数,调用存储过程的

MySQL表字段设置默认值

环境 MySQL 5.1 + 命令行工具 问题 MySQL表字段设置默认值 解决 --SQL: CREATE TABLE test( i_a int NOT NULL DEFAULT 1, ts_b timestamp NOT NULL DEFAULT NOW(), c_c char(2) NOT NULL DEFAULT '1' ); --以下SQL不合法 --time_d time NOT NULL DEFAULT CURTIME(), --date_e date NOT NULL DEFA

赋值-c# 后台给select下拉框设置默认值

问题描述 c# 后台给select下拉框设置默认值 点击编辑时 要给下拉框赋值,在后台拿到对应的值后怎么给下拉框赋值.控件.属性=值: 请问是哪个属性.谢谢 解决方案 select是客户端的?还是服务器端的asp:DropDownList 客户端的直接 document.getElementById('selid').value='<%=cs后台文件中一个protected全局变量%>' 服务器的用ddl.SelectedValue=xxxx 解决方案二: 到底要默认值还是要赋值啊. 你说的是

mysql里面没设置默认值字段也不允许为空,插入语句中也没指定值却能插入成功!是什么情况??

问题描述 mysql里面没设置默认值字段也不允许为空,插入语句中也没指定值却能插入成功!是什么情况?? 如题,我的表结构是这样的 SQL语句:INSERT INTO test (name) VALUES ('lsq2') 求大神帮忙!! 解决方案 后面的图片上错了, 解决方案二: 楼主你替数据库想想,又不能为null,又得是int类型,还能怎么办,数据库只能补个0. 解决方案三: 我以为是会报错,这是我本地测试的 没有报错我在正式服务器上试了报错了,说字段没有默认值.

MySQL表字段设置默认值(图文教程及注意细节)_Mysql

环境 MySQL 5.1 + 命令行工具 问题 MySQL表字段设置默认值 解决 复制代码 代码如下: --SQL: CREATE TABLE test( i_a int NOT NULL DEFAULT 1, ts_b timestamp NOT NULL DEFAULT NOW(), c_c char(2) NOT NULL DEFAULT '1' ); --以下SQL不合法 --time_d time NOT NULL DEFAULT CURTIME(), --date_e date NO

[Android]为Spinner填充数据后设置默认值的问题

前言 为Spinner适配完数据后需要设置其默认选项,但是发现直接setSelection(int position)有时候不管用,打开选项又发现已经选中了,但是显示出来的选项又始终默认第一个,本文为文章1的中文简单译本.   文章 1. Using spinner.setSelection & finding the spinner doesn't show the selected item when closed?   声明 欢迎转载,但请保留文章原始出处:)  博客园:http://ww