当前位置:智谱咖>综合知识>

sql存储过程怎么写

智谱咖 人气:3.58K
1. 数据库存储过程怎么编写

第一步:点击数据库下的“可编程性”,选择“存储过程”,点击鼠标右键,选择“新建存储过程”

sql存储过程怎么写

第二步:在create PROCEDURE 后 输入存储过程的名字,紧跟着的就是定义存储过程的参数,接下来就可以去编写自己所需要组装的存储过程语句了

第三步: 编译存储过程,在工具栏上按下执行按钮,如果没有错误,就编写成功了。

第四步:调用:在sqlserver的语句查询框中,输入exec 存储过程名 参数,执行就可以了。

基本语法格式如下:中括号带的是可选项

create proc | procedure pro_name

[{@参数数据类型} [=默认值] [output],

{@参数数据类型} [=默认值] [output],

.

]

as

begin

SQL_statements

--业务处理

end

2. SQL Server的存储过程怎么写

SQL server中如何存储:首先准备数据,测试存储过程 use ssqadm; 创建测试books表 create table books_test ( book_id int identity(1,1) primary key, book_name varchar(20),book_price float,book_auth varchar(10)); 插入测试数据 insert into books_test (book_name,book_price,book_auth)values ('论语',25.6,'孔子'),('天龙八部',25.6,'金庸'),('雪山飞狐',32.7,'金庸'),('平凡的世界',35.8,'路遥'),('史记',54.8,'司马迁'); select * from books_test;*/ 创建无参存储过程 if (exists (select * from sys.objects where name = 'getAllBooks')) drop proc getAllBooks go create procedure getAllBooks as begin select * from books_test; 调用,执行存储过程 exec getAllBooks; end go 修改存储过程 alter procedure getallbooks as select book_name from books_test; 修改存储过程的名称 sp_rename getallbooks,proc_get_allbooks; go exec proc_get_allbooks; go 创建带参数的存储过程 use ssqadm go if (exists (select * from sys.objects where name = 'searchbooks')) drop proc searchbooks exec searchbooks 执行存储searchbooks得到如下结果:go create procedure searchbooks (@bookid int)--括号里面是 as begin declare @book_id int;定义一个标量变量,只是保证存储过程的完整性,在本存储是多此一举的。

set @book_id = @bookid; select* from books_test where book_id = @book_id; end; go-- exec searchbooks 执行存储searchbooks得到如下结果:创建带两个参数的存储过程 use ssqadm go if (exists (select * from sys.objects where name = 'book_test2')) drop proc book_test2 exec book_test2 执行存储book_test2得到如下结果:go create procedure book_test2 (@bookid int,@bookname varchar(20))括号里面是 as begin declare @book_id int; 定义一个标量变量,只是保证存储过程的完整性,在本存储是多此一举的。declare @book_name varchar(20); set @book_id = @bookid; set @book_name = @bookname; select* from books_test where book_id = @book_id and book_name = @book_name; end; go exec book_test2 扩展资料:SQL Server中查询存储命令子句:USE [SSQADM] Use 是跳转到哪个数据库,对这个数据库进行操作。

GO GO向 SQL Server 实用工具发出一批 Transact-SQL 语句结束的信号,相当于提交上面的SQL语句。GO是把t-sql语句分批次执行 (一步成功了才会执行下一步,即一步一个GO)/****** Object: StoredProcedure [dbo].[PROC_four_five_hr] Script Date: 07/30/2018 13:44:55 ******/ SET ANSI_NULLS ONGOSET QUOTED_IDENTIFIER ON。

3. SQL存储过程怎么写这样套复杂的写法.

create proc proc1

@B1 int,@B2 int,@ID int output

as

declare @K1 int,@K2 int,@K3 varchar(20)

begin

exec proc2 @K1,@K2,@K3 output --@K3输出参数 就是你的tablename

select @ID=ID from @K3 where B1=@B1 and B2=@B2

end

你提供的不详细 我只能写个思路给你。。 调用proc1存储过程先调用proc2传出一个表名 然后根据传入的参数输出这个表名的ID字段。

4. SQL Server的存储过程怎么写

SQL server中如何存储: 首先准备数据,测试存储过程 use ssqadm; 创建测试books表 create table books_test ( book_id int identity(1,1) primary key, book_name varchar(20),book_price float,book_auth varchar(10)); 插入测试数据 insert into books_test (book_name,book_price,book_auth)values ('论语',25.6,'孔子'), ('天龙八部',25.6,'金庸'), ('雪山飞狐',32.7,'金庸'), ('平凡的世界',35.8,'路遥'), ('史记',54.8,'司马迁'); select * from books_test;*/ 创建无参存储过程 if (exists (select * from sys.objects where name = 'getAllBooks')) drop proc getAllBooks go create procedure getAllBooks as begin select * from books_test; 调用,执行存储过程 exec getAllBooks; end go 修改存储过程 alter procedure getallbooks as select book_name from books_test; 修改存储过程的名称 sp_rename getallbooks,proc_get_allbooks; go exec proc_get_allbooks; go 创建带参数的存储过程 use ssqadm go if (exists (select * from sys.objects where name = 'searchbooks')) drop proc searchbooks exec searchbooks 执行存储searchbooks得到如下结果: go create procedure searchbooks (@bookid int)--括号里面是 as begin declare @book_id int;定义一个标量变量,只是保证存储过程的完整性,在本存储是多此一举的。

set @book_id = @bookid; select* from books_test where book_id = @book_id; end; go -- exec searchbooks 执行存储searchbooks得到如下结果: 创建带两个参数的存储过程 use ssqadm go if (exists (select * from sys.objects where name = 'book_test2')) drop proc book_test2 exec book_test2 执行存储book_test2得到如下结果: go create procedure book_test2 (@bookid int,@bookname varchar(20))括号里面是 as begin declare @book_id int; 定义一个标量变量,只是保证存储过程的完整性,在本存储是多此一举的。 declare @book_name varchar(20); set @book_id = @bookid; set @book_name = @bookname; select* from books_test where book_id = @book_id and book_name = @book_name; end; go exec book_test2 扩展资料: SQL Server中查询存储命令子句: USE [SSQADM] Use 是跳转到哪个数据库,对这个数据库进行操作。

GO GO向 SQL Server 实用工具发出一批 Transact-SQL 语句结束的信号,相当于提交上面的SQL语句。 GO是把t-sql语句分批次执行 (一步成功了才会执行下一步,即一步一个GO) /****** Object: StoredProcedure [dbo].[PROC_four_five_hr] Script Date: 07/30/2018 13:44:55 ******/ SET ANSI_NULLS ONGOSET QUOTED_IDENTIFIER ON。

5. SQL语句一般存储过程怎么写

create proc 存储过程名

[可选参数列表(格式:@参数名 参数类型 [ = 可选默认值],)]:参数间用逗号分隔

as

T-SQL语句

go

---------------调用---------------

exec 存储过程名

例如:

create proc selectStudent

@stuClassId int,

@stuName nvarchar(20)

as

SELECT * FROM student WHERE stuClassId = @stuClassId and stuName=@stuName

go

6. sql存储过程语句怎么写

CREATE procedure test

@ban varchar(20),

@begintime varchar(20),

@endtime varchar(20)

as

select * from table

where 班次 like @ban

and 时间 between @begintime and @endtime

传入班次前最好先判断参数的值是否为空,是的话给它赋值为%

7. SQL数据库这个存储过程应该如何写

两个方案:

1、使用触发器,在A库的a表中建立 Insert,Update 触发器,使在数据写入或更新时,将变更实时写入B库b表;

好处:简单、实时;缺点:远程实时访问以及触发器的方式,风险大,当B不能访问或反应缓慢时,A库的a表就无法更新;

2、使用计划任务:好处:可避免上述的所有缺点;不足:实现稍复杂些,且不是实时同步;步骤:

1)为A库a表建立日志表a_log,用于详细记录对a表的插入、删除、和Update操作,并有时间记录;

2)为A库a表建立Insert,Update,Delete 触发器,将对a表的这些操作过程记录在a_log表中(即:对哪个ID做了什么操作);

3)在B库中建立存储过程,用于读取A库a_log表的信息,并据此用a表数据更新b表数据。可采用增量方式,也就是每次操作时都取上次成功的时间点之后的数据;

4)在B库建立计划任务,定时调用上述的存储过程。按需要,可以几分钟一次,也可以几天一次。

TAGS:SQL 存储