当前位置:首页 » 存储配置 » sql存储过程参数默认值

sql存储过程参数默认值

发布时间: 2023-01-10 16:07:34

⑴ 如何在sql server中创建一个存储过程中的varchar型的输入参数默认值为空

create procere aaa
@abc varchar(30) = null
as
begin
.....
end

⑵ sql 2008 创建存储过程付默认值是不可以用函数吗

不可以,函数只能在存储过程内部使用,不能定义函数的默认值

⑶ sql中如何设置存储过程的默认值为当前日期

  • 存储过程参数的默认值只允许常量和null. 可以做如下修改:
    create proc proc_borrow
    @willdate datetime=null,@retumdate datetime=null
    as
    select * from Borrow where WillDate between isnull(@willdate,dateadd(yy,-1,GETDATE())) and isnull(@retumdate,GETDATE())
    go

⑷ sql存储过程输出参数能带默认值吗

可以,输出参数首先会作为输入参数使用。如果在过程中不更改,那么输出就是默认值。

⑸ sql存储过程参数可省略吗 存储过程中参数都有默认值,调用时可不可以不传参数呢

可以省略参数
create function 拥有者.函数名(参数名 类型)
这是创建函数的SQL Server句头 可省略括号中的参数 但不可省略括号

在sql server中 执行带参数的存储过程
exec+空格+存储过程名+空格+参数
多个参数的话用逗号分隔 传出参数要加output
例如:
exec P_GetIntegratedFluxOneMoment @StartTableName,@ColName,@StartTime,@StartValue output
其中@StartTableName,@ColName,@StartTime,@StartValue都是前面已经定义好的变量 传入参数也可以不用变量 直接写值也行

程序中调用的话看你用什么语言了 各个语言的调用方法不一样

⑹ sql 执行存储过程的参数怎么声明

create procere MonthReport
@reportStartDate datetime,@reportEndDate datetime --参数
as
begin transaction
.......

commit transaction
go
------------------------
execute MonthReport '2011-07-01','2011-07-31' --调用存储过程
go

⑺ MSSQL存储过程设置默认值, money 类型设为0为什么没有效果

1有些地方没必要4个单引号,3个就行,在sql中字符串的拼接语句中要表示1个单引号就得用两个单引号,前一个表示转义的意思,编程语言都有转义一说
2因为是字符串拼接的,而@FormerPrice这些是money类型的,如果不转换,就默认要把字符串转换成money类型了,就会出错。所以得把@FormerPrice之类的转换成字符类型的,存储过程修改如下
ALTER PROCEDURE [dbo].[SearchMerchandise]
@Category varchar(50),
@Brand varchar(50),
@Type varchar(50),
@FormerPrice money,
@LatterPrice money
AS
BEGIN
declare @QueryString varchar(100)
set @QueryString = 'select * from Merchandise where Category = ''' + @Category + ''' and Brand = ''' + @Brand + ''' '
SET NOCOUNT ON;

if @Type<>''
set @QueryString = @QueryString+' and Type=''' +@Type+ ''''
if @FormerPrice<>'' and @LatterPrice<>''
set @QueryString = @QueryString+' and PriceNow between '''+ convert(varchar(20),@FormerPrice) + ''' and ''' + convert(varchar(20),@LatterPrice) + ''''
if @FormerPrice<>'' and @LatterPrice=''
set @QueryString = @QueryString+' and PriceNow >=''' + convert(varchar(20),@FormerPrice) + ''''
if @FormerPrice='' and @LatterPrice<>''
set @QueryString = @QueryString+' and PriceNow <=''' + convert(varchar(20),@LatterPrice) + ''''

exec(@QueryString)
END

⑻ SQL存储过程修改,设置默认参数。

select部门号,部门名称from系统参数表where部门名称='你们部门的名称'
--然后
set@bm='部门号',@部门='部门名称'

⑼ MS sql如何使用存储过程

一、存储过程的概念
T-SQl和C语言一样 ,是一门结构化的语言。
什么是存储过程?
存储过程是SQL查询语句与控制流程语句的预编译集合,并以特定的名称保存在数据库中。存储过程也是数据库对象
分类:
系统存储过程: 以sp_或xp_打头
用户自定义 :以proc_打头
存储过程的优点:
执行速度快 效率高
模块式编程
减少网络流量
提高安全性
二、系统存储过程
SQl server 的系统存储过程保存在master数据库中,且所有命名的系统存储过程命名以“Sp_”开头。在master数据库中,
系统存储过程数量如下:
代码如下 复制代码
select count([name])as '系统存储数量' from sysobjects
where [name] like 'sp_%'

EXECUTE 用来表示调用存储过程,也可以缩写为EXEC,
调用存储的语法如下:
EXECUTE ‘存储过程名’ ‘参数’ ---如果没有参数则省略参数
常用的系统存储过程
EXEC sp_databases 列出当前系统中的数据库
EXEC sp_renamedb 'Northwind','Northwind1' 修改数据库的名称(单用户访问)
USE stuDB GO EXEC sp_tables 返回某个表列的信息
EXEC sp_columns 查看指定列的信息
EXEC sp_help 查看某个表的所有信息
EXEC sp_helpconstraint '表名' 查看某个表的约束
EXEC sp_helpdb '数据库名' 或 EXEC sp_helpdb 查看指定数据库或所有数据库信息
EXEC sp_helptext '对象名称' 显示数据库对象(存储过程、触发器、试图)的定义文本
EXEC sp_helpindex '表名' 查看指定表的索引信息
EXEC sp_renamedb '原名称','新名称' 更改数据库名称
EXEC sp_stored_proceres 列出当前环境可用的所有存储过程

除了系统存储过程,SQL Server 还提供以Xp_开头的扩展存储过程,如可以调用DOS命名的,XP_cmdshell 存储过程
用法如下:

代码如下 复制代码

EXEC Xp_cmdshell DOS 命名 [NO_OUTPUT]


NO_OUTPUT 为可选参数,表示是否输入存储过程返回的信息
三、用户自定义存储过程
1、语法
代码如下 复制代码
create procere 存储过程名
@参数1名 数据类型 [=默认值] [参数类型(输入/输出)]
... ...
@参数n名 数据类型 [=默认值] [参数类型(输入/输出)]
as
begin
sql语句
end;
go

参数类型分为输入参数和输出参数,默认为输入参数,使用OUTPUT表示输出参数。创建存储过程最好以proc开头

2、创建不带参数的存储过程

代码如下 复制代码
--判断存储过程是否存在
if object_id('proc_student','procere') is not null
drop procere proc_student
go
create procere proc_student
as
begin
select pcid as '电脑编号',
case pcuse
when 0 then '空闲'
when 1 then '忙碌'
end as '使用状态' from pc
end;
--调用存储过程
execute proc_student select * from pc
go

3、创建带输入参数的存储过程
语法:
代码如下 复制代码
create procere 存储过程名
@参数1名 数据类型 [=默认值]
....
@参数2名 数据类型[=默认值]
as
SQl与语句
...
go

--例如
--创建带输入参数的存储过程
代码如下 复制代码
if object_id('proc_stu','procere') is not null
drop procere proc_stu
go
create procere proc_stu
@pcuse int
as
begin
select pcid as '电脑编号',
case pcuse
when 0 then '空闲'
when 1 then '忙碌'
end as '使用状态' from pc where pcuse=@pcuse end;
--调用存储过程
execute proc_stu @pcuse=1

4、创建带输出参数的存储过程
代码如下 复制代码
--创建带输出参数的存储过程
if OBJECT_ID('proc_s','procere') is not null
drop procere proc_s
go
create procere proc_s
@pcid int,
@pcus int output
as
begin
select @pcus=pcuse from pc where pcid=@pcid end;
--调用存储过程
declare @pcus int execute proc_s 5,@pcus output


四、处理错误信息
当存储过程的语句十分复杂时,可以在存储过程中加入错误语言。SQL Server中可以使用RAISERROR 返回用户自定义的错误信息。
RAISERROR 语法如下:

RAISERROR (自定义的错误信息,错误的严重级别,错误状态)

自定义错误信息:表示输出信息:表示输出的错误提示文本
错误的严重级别:表示用户自定义错误的严重性级别。(0-18极)
错误的状态:表示自定义错误的状态,值的范围在1-127

⑽ 在SQL Server怎样调用存储过程中的参数

这个例子创建了一个存储过程,过程中第一个和第三个参数为默认值。当运行该过程时,如果调用时没有传递值或者指定了默认值,这些默认值就会赋给第一个和第三个参数。注意 DEFAULT 关键字有多种使用方法。
USE pubs

IF EXISTS (SELECT name FROM sysobjects
WHERE name = 'proc_calculate_taxes' AND type = 'P')
DROP PROCEDURE proc_calculate_taxes
GO
-- Create the stored procere.
CREATE PROCEDURE proc_calculate_taxes (@p1 smallint = 42, @p2 char(1),
@p3 varchar(8) = 'CAR')
AS
SELECT *
FROM mytable
proc_calculate_taxes 存储过程可以以多种组合方式执行:
EXECUTE proc_calculate_taxes @p2 = 'A'EXECUTE proc_calculate_taxes 69, 'B'EXECUTE proc_calculate_taxes 69, 'C', 'House'EXECUTE proc_calculate_taxes @p1 = DEFAULT, @p2 = 'D'EXECUTE proc_calculate_taxes DEFAULT, @p3 = 'Local', @p2 = 'E'EXECUTE proc_calculate_taxes 69, 'F', @p3 = DEFAULT

EXECUTE proc_calculate_taxes 95, 'G', DEFAULT
EXECUTE proc_calculate_taxes DEFAULT, 'H', DEFAULT
EXECUTE proc_calculate_taxes DEFAULT, 'I', @p3 = DEFAULT

热点内容
3d编译环境可以退吗 发布:2025-07-25 12:06:40 浏览:491
怎么不用钱搭建云服务器 发布:2025-07-25 11:59:22 浏览:450
怎么看编译符号表 发布:2025-07-25 11:48:33 浏览:679
中维客户端密码多少 发布:2025-07-25 11:33:34 浏览:10
u盘超级加密3000如何 发布:2025-07-25 11:22:58 浏览:688
worm算法 发布:2025-07-25 11:21:14 浏览:491
pop邮件服务器如何删除用户 发布:2025-07-25 11:02:49 浏览:155
数据库保存html 发布:2025-07-25 11:02:41 浏览:707
php套表格 发布:2025-07-25 10:58:57 浏览:300
树叶特效源码 发布:2025-07-25 10:50:13 浏览:629