sql存储过程怎么写
一:创建没有参数的存储过程:
CREATE PROCEDURE select_all
AS
BEGIN
SELECT * from T_login1
GO
二:创建带参数的存储过程:
CREATE PROCEDURE select_name
@id uniqueidentifier
AS
BEGIN
SELECT * from T_login1 where PSN0001A=@id
GO
(1)sql存储过程怎么写扩展阅读:
创建存储过程的注意事项:
1、保持事务简短,事务越短,越不可能造成阻塞。
2、在事务中尽量避免使用循环while和游标,以及避免采用访问大量行的语句。
3、在启动事务前完成所有的计算和查询等操作,避免同一事务中交错读取和更新。可以使用表变量预先存储数据。即存储过程中查询与更新使用两个事务实现。
4、超时会让事务不执行回滚,超时后如果客户端关闭连接sqlserver自动回滚事务。如果不关闭,将造成数据丢失,而其他事务将在这个未关闭的连接上执行,造成资源锁定,甚至服务器停止响应。
② 使用SQL语句创建存储过程
使用SQL语句创建存储的具体过程如下:
1、首先,打开企业管理器,选择【工具】-【查询分析器】:
③ sql server 2008 怎么编写存储过程
第一步:点击数据库下的“可编程性”,选择“存储过程”,点击鼠标右键,选择“新建存储过程”
第二步:在create
PROCEDURE
后
输入存储过程的名字,紧跟着的就是定义存储过程的参数,接下来就可以去编写自己所需要组装的存储过程语句了
第三步:
编译存储过程,在工具栏上按下执行按钮,如果没有错误,就编写成功了。
第四步:调用:在sqlserver的语句查询框中,输入exec
存储过程名
参数,执行就可以了。
基本语法格式如下:中括号带的是可选项
create
proc
|
procere
pro_name
[{@参数数据类型}
[=默认值]
[output],
{@参数数据类型}
[=默认值]
[output],
....
]
as
begin
SQL_statements
--业务处理
end
④ MySQL里面sql语句调用存储过程,该如何写
这样:
CREATEPROCEDUREsp_add(a int, b int,outc int)
begin
set c=a+ b;
end;
调用过程:
call sp_add (1,2,@a);
select @a;
(4)sql存储过程怎么写扩展阅读:
注意事项
存储过程(stored procere)是一组为了完成特定功能的SQL语句集合,经编译后存储在服务器端的数据库中,利用存储过程可以加速SQL语句的执行。
存储过程分为系统存储过程和自定义存储过程。
系统存储过程在master数据库中,但是在其他的数据库中可以直接调用,并且在调用时不必在存储过程前加上数据库名,因为在创建一个新数据库时,系统存储过程在新的数据库中会自动创建。
自定义存储过程,由用户创建并能完成某一特定功能的存储过程,存储过程既可以有参数又有返回值,但是它与函数不同,存储过程的返回值只是指明执行是否成功,并不能像函数那样被直接调用,只能利用execute来执行存储过程。
创建存储过程
SQL Server创建存储过程:
create procere 过程名
@parameter 参数类型
@parameter 参数类型
。。。
as
begin
end
执行存储过程:execute 过程名
⑤ sql 中的存储过程谁能描述下下··谢谢
标准答案:
在最新的SQL2005中的存储过程(Procere)类似于java语言中的方法,它是SQL语句和控制流语句的预编译集合。存储过程在数据库内,可由应用程序通过一个调用执行,而且允许用户声明变量,逻辑控制语句以及其他强大的编程功能。
存储过程可包含逻辑控制语句和数据操作语句,它可以接收参数,输出参数,返回单个或多个结果集以及返回值。
给你一个例子:
create proc proc_takeMoney
@cardID1 varchar(20), --汇款账号
@pwd int , --汇款密码
@takeMoney money, --汇款金额
@cardID2 varchar(20) --存款账号
as
set nocount on
declare @err int
set @err = 0
if exists(select 1 from cardInfo where cardID = @cardID1 and pass = @pwd)
begin
begin tran --事物开始
update cardInfo set balance = balance + @takeMoney where cardID = @cardID2 --接受款帐户加上@takeMoney
set @err = @err + @@error
update cardInfo set balance = balance - @takeMoney where cardID = @cardID1 --汇款帐户减去@takeMoney
set @err = @err + @@error
/*--交易信息表插入交易信息--*/
insert into transInfo(transDate,cardId,transType,transMoney) values(default,@cardID1,'支取',@takeMoney)
set @err = @err + @@error
insert into transInfo(transDate,cardId,transType,transMoney) values(default,@cardID2,'存入',@takeMoney)
set @err = @err + @@error
/*--交易信息--*/
select top 2 * from transInfo order by transDate desc
if(@err<>0)
begin
rollback tran --错误回滚事物
end
else
begin
commit tran --无错误提交事物
end
end --if结束
else
begin
print '密码错误'
end
/*--调用存储过程--*/
declare @cardID1 varchar(20),@cardID2 varchar(20),@pwd int ,@takeMoney money
set @cardID1 ='1010 3576 1234 5678' --张三卡号
set @pwd = 888888 --张三密码
set @cardID2 ='1010 3576 1212 1134' --李四卡号
set @takeMoney =20 --汇款金额
exec proc_takeMoney @cardID1 ,@pwd,@takeMoney,@cardID2
⑥ sql 存储过程语句编写
要到达你的要求,在存储过程中必须使用动态SQL语句。
一个简化的例子:
createprocereMyDynamicSQL
@tblwherenvarchar(200)--a==aora==xxx
as
begin
declare@sqlnvarchar(max)
--动态拼接sql语句
set@sql=N'select*from[表一]where'+@tblwhere
--执行
executesp_executesql@sql
end