sqlserver存储过程
SQL Server中存储过程的返回值不是通过return语句返回的(return语句是在用户自定义函数中使用的),而是通过存储过程的参数来返回,在定义存储过程的参数时使用关键字output来指定此参数是返回值。
而在调用存储过程时,也必须使用关键字给接收返回值的变量,这样才能在调用时获得存储过程的返回值。
示例:
create procere dbo.pr_add @a int, @b int, @c int outputas set @c = @a + @bgo
调用:
declare @v intexecute dbo.pr_add 1, 2, @v outputselect @v
Ⅱ 如何建立sqlServer的存储过程
是程序建立SQL存储过程还是就是在数据库中建立存储过程,把语句写好,数据库中直接执行,在程序中也可以建立SQL连接同时执行语句,创建存储过程。
Ⅲ 编写一个SQLSERVER 存储过程
代码是最好的文字,不多说,请看我的代码,并给分,呵呵。
--step1. 建表
if exists(select * from sysobjects where id=object_id('student') and objectproperty(id,'IsTable')=1)
drop table student
go
create table student
(
id int identity(100,10) not null
,sname varchar(10) not null
,sno varchar(30) not null
)
go
--step2.建存储过程
if exists(select * from sysobjects where id=object_id('proc_demo') and objectproperty(id,'IsProcere')=1)
drop procere proc_demo
go
create procere proc_demo
@o_maxid int output
as
set nocount on
--如果希望大小写敏感,使用第一句,因为SQL Server默认是大小写不敏感的
--update student set sno='cay_'+sno where ascii(substring(sname,1,1))=87 and ascii(substring(sname,2,1))=65 and sno not like 'cay_%'
update student set sno='cay_'+sno where sname like 'WA%' and sno not like 'cay_%'
print convert(varchar(10),@@rowcount)+'条记录符合条件并被处理'
select @o_maxid=max(id) from student where id>=100
if(@o_maxid is null) print '没有找到符合条件的最大记录'
set nocount off
go
--测试数据1
truncate table student
set identity_insert student on
insert into student(id,sname,sno)values(1,'WA1','1');
insert into student(id,sname,sno)values(2,'wa2','2');
insert into student(id,sname,sno)values(3,'3','3');
set identity_insert student off
go
--测试数据2
truncate table student
insert into student(sname,sno)values('WA1','1');
insert into student(sname,sno)values('wa2','2');
insert into student(sname,sno)values('3','3');
go
--测试过程
declare @maxid int
exec proc_demo @maxid out
print '最大id是'+convert(varchar(10),@maxid)
go
Ⅳ SqlServer存储过程
create
procere
prCreateSubPlan
as
begin
declare
@id
int,
@intCycle
int,
@planName
varchar(100),
@createTime
smalldatetime,
@cycleTime
int
select
@id
=
min(t_cplan_id)
from
t_cplan
while
(@id
is
not
null)
begin
select
@planName=t_plan_name,
@createTime
=
createTime,
@cycleTime
=
cycleTime
from
t_cplan
where
t_cplan_id=@id
select
@intCycle=
0
while
(@intCycle<@cycleTime)
begin
--
表t_plan
列t_plan_id是IDENTITY
列
insert
t_plan
(t_plan_name,
t_cplan_id,
createTime)
values
(@planName,
@id,
dateadd(day,
@intCycle,
@createTime))
select
@intCycle
=
@intCycle
+
1
end
select
@id
=
min(t_cplan_id)
from
t_cplan
where
t_cplan_id>@id
end
end
go
Ⅳ sqlserver存储过程何循环读表。
使用游标,如下
CREATE PROCEDURE proc_getalltable
AS
BEGIN
SET NOCOUNT ON;
DECLARE @tablename VARCHAR(100),@sql VARCHAR(1000)
DECLARE tablename CURSOR FOR SELECT tname FROM tablelist
OPEN tablename
FETCH NEXT FROM tablename INTO @tablename
WHILE @@FETCH_STATUS = 0
BEGIN
SELECT @sql = 'SELECT * FROM ' + @tablename
EXEC(@sql)
FETCH NEXT FROM tablename INTO @tablename
END
CLOSE tablename
DEALLOCATE tablename
END
GO
Ⅵ sqlserver怎么查看存储过程
以下命令:
USE 数据库名;
GO
EXEC sp_helptext N'数据库名.dbo.uspLogError';
Ⅶ Sqlserver 2008 存储过程 怎么写
第一步:点击数据库下的“可编程性”,选择“存储过程”,点击鼠标右键,选择“新建存储过程”
第二步:在create PROCEDURE 后 输入存储过程的名字,紧跟着的就是定义存储过程的参数,接下来就可以去编写自己所需要组装的存储过程语句了
第三步: 编译存储过程,在工具栏上按下执行按钮,如果没有错误,就编写成功了。
第四步:调用:在sqlserver的语句查询框中,输入exec 存储过程名 参数,执行就可以了。
基本语法格式如下:中括号带的是可选项
create proc | procere pro_name
[{@参数数据类型} [=默认值] [output],
{@参数数据类型} [=默认值] [output],
....
]
as
begin
SQL_statements
--业务处理
end
Ⅷ sqlserver存储过程怎么调试
最近在做vb项目的时候,用到了存储过程的调试,现在总结一下发现单步调试存储过程有以下2种方法:
1.这种方法自己已经做过,是可以的,如下:
a.如果目标数据库存在存储过程,右击该存储过程-修改,打开存储过程,并在需要的地方设置断点。(如果没有自定义存储过程,则需要在Sql Server 2012数据库中创建存储过程,完成后在里面设置断点);
b.另外开启一个新建查询窗口,写入调用代码:例如 exec BillManageInputProc '主单1','0111111','0111112','121','legend','2014-09-24','001','2014-09-24','1','市场部','0' ,单击 调试按钮 启动存储过程的调试;
c.单击 F 11 进行逐句调试。
2.在vs2010调试存储过程步骤如下:
首先,打开vs,点击 视图-->服务器资源管理器
http://www.cnblogs.com/caishiquan/p/4050237.html
Ⅸ 带参数的sqlserver存储过程的定义
@是标示符,代表是变量
一个@表示局部变量
两个@表示是全局变量,全局变量是有服务器定义的
Ⅹ sqlserver怎么创建存储过程
创建存储过程的步骤如下:
打开SQL Server 2005的管理工具,选中需要创建存储过程的数据库,找到“可编程性”,展开后可以看到“存储过程”。
右键点击它,选择“新建存储过程”,右侧的编辑窗口打开后,里面装着微软自动生成的SQL Server创建存储过程的语句。
将存储过程的名字、参数、操作语句写好后->点击语法分析,没有错误就直接按“F5”键运行就好了,存储过程创建完毕。
最后可以看一下,以下是一个基本的存储过程的代码:
CREATE PROCEDURE Get_Data
(
@Dealer_ID VARCHAR(50)
)
AS
SELECT * FROM myData WHERE Dealer_ID = @Dealer_ID
以上是创建存储过程的步骤,供您参考