db2存储过程怎么写
1.db2的存储过程中怎么写建表语句
您好,很高兴为bai您解答。
CREATE PROCEDURE db2admin.CREATE_DATABASE()
SPECIFIC db2admin.CREATE_DATABASE
LANGUAGE SQL
BEGIN
declare sSql varchar(1000) ;
set sSql = 'CREATE TABLE A (ID BIGINT NOT NULL)';
prepare s1 from sSql;
execute s1;
END
如若满意,请点击du右侧【采纳答案】,如zhi若还有问题,dao请点击【追问】
希望我回的回答对您有所帮助,望采纳!答
~ O(∩_∩)O~
2.db2的存储过程中怎么写建表语句
CREATE PROCEDURE db2admin.CREATE_DATABASE()
SPECIFIC db2admin.CREATE_DATABASE
LANGUAGE SQL
BEGIN
declare sSql varchar(1000) ;
set sSql = 'CREATE TABLE A (ID BIGINT NOT NULL)';
prepare s1 from sSql;
execute s1;
END
3.db2的存储过程中怎么写建表语句
您好,很高兴为bai您解答。
CREATE PROCEDURE db2admin.CREATE_DATABASE() SPECIFIC db2admin.CREATE_DATABASE LANGUAGE SQL BEGIN declare sSql varchar(1000) ; set sSql = 'CREATE TABLE A (ID BIGINT NOT NULL)'; prepare s1 from sSql; execute s1; END 如若满意,请点击du右侧【采纳答案】,如zhi若还有问题,dao请点击【追问】希望我回的回答对您有所帮助,望采纳!答 ~ O(∩_∩)O~。
4.高手帮忙写个db2 存储过程
CREATE PROCEDURE SP_TEST()
SPECIFIC SP_TEST
LANGUAGE SQL
NOT DETERMINISTIC
EXTERNAL ACTION
MODIFIES SQL DATA
CALLED ON NULL INPUT
INHERIT SPECIAL REGISTERS
BEGIN ATOMIC
--全局错误处理变量
DECLARE SQLCODE INTEGER DEFAULT 0;
DECLARE SQLSTATE CHAR(5) DEFAULT '00000';
--异常错误处理变量
DECLARE V_SQLCODE INTEGER DEFAULT 0;
DECLARE V_SQLSTATE CHAR (5) DEFAULT '00000';
DECLARE V_BREAKPOINT CHAR (13) DEFAULT '001';
DECLARE V_ERRMSG VARCHAR (255);
DECLARE V_NOTFOUND SMALLINT DEFAULT 0;
--SQL异常处理程序体
DECLARE EXIT HANDLER FOR sqlexception
BEGIN
DECLARE CONTINUE HANDLER FOR sqlexception
BEGIN
SET MESSAGE_TEXT = V_ERRMSG;
END ;
SELECT SQLCODE,SQLSTATE INTO V_SQLCODE ,V_SQLSTATE FROM SYSIBM.SYSDUMMY1 ;
RESIGNAL;
END;
--SQL NOT FOUND 处理程序体
DECLARE CONTINUE HANDLER FOR NOT FOUND
BEGIN
SET V_NOTFOUND = 1;
END ;
SET V_BREAKPOINT = '001';
INSERT INTO man (name ,age ,status) VALUES ('name',1,0);
insert into P_score(person_id ,score) values (select max(id) from man,10);
END;
DB2的存储过程自己会启事务,失败会自动回滚的
5.db2存储过程中怎样写游标
不是这样的,存储过程中不是非要用游标啊,他有输入和输出参数,只要在过程中做相应的处理就会返回输出参数。游标的作用主要是为了循环提取数据,游标分隐性游标和显性游标。
举个例子(显性游标):
cursor 游标名 is select 语句;
while 游标名% found loop
end loop;其中的select 语句提取的是一列值,然后每次取一个进行下面的循环。
(隐性游标):
for 游标名 in (select 语句)loop
end loop;其中的select 语句提取的也是一列值,然后每次取一个进行下面的循环。
6.请教一个db2的存储过程
1、存储过程编写
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
DROP PROCEDURE "PLName"
@
CREATE PROCEDURE "PLName"(--存储过程名字
IN IN_ID BIGINT , --以下全是输入参数
IN IN_ENTNAME VARCHAR(200) ,
IN IN_REGNO VARCHAR(50),
IN IN_PASSWORD VARCHAR(20),
IN IN_LEREP VARCHAR(300),
IN IN_CERTYPE CHARACTER(1),
IN IN_CERNO VARCHAR(50),
IN IN_LINKMAN VARCHAR(50),
IN IN_SEX CHARACTER(1),
IN IN_MOBTEL VARCHAR(30),
IN IN_REQDATE TIMESTAMP,
IN IN_REMITEM VARCHAR(300),
IN IN_STATE CHARACTER(1),
IN IN_TIMESTAMP TIMESTAMP
)
BEGIN
declare V_RESULT BIGINT; --声明变量
DELETE FROM TableNameA WHERE ID = IN_ID;
SET V_RESULT = NULL; --为变量赋值
--检查用户输入的信息是否合法
select b.id INTO V_RESULT from TableNameB b,TableNameC c where 正常的判断条件
if(V_RESULT IS NOT NULL) then ---如果合法,执行下面的insert语句
INSERT INTO TableNameA(ID,ENTNAME,REGNO,PASSWORD,LEREP,CERTYPE,CERNO,LINKMAN,SEX,MOBTEL,REQDATE,REMITEM,STATE,TIMESTAMP)
VALUES(IN_ID,IN_ENTNAME,IN_REGNO,IN_PASSWORD,IN_LEREP,IN_CERTYPE,IN_CERNO,IN_LINKMAN,IN_SEX,IN_MOBTEL,IN_REQDATE,IN_REMITEM,IN_STATE,IN_TIMESTAMP);
end if;
commit;
END
@
2、调用存储过程
1.拷贝到DB2客户端工具中直接执行
2.将上面的语句保存为test.db2文件放到任意目录下(比如D盘根目录),然后在cmd输入db2cmd 然后输入db2 -td@ -vf D:\test.db2即可
3.直接写sql:
call PLName(存储过程名字) (IN_ID,IN_ENTNAME,IN_REGNO,IN_PASSWORD,IN_LEREP,IN_CERTYPE,IN_CERNO,IN_LINKMAN,IN_SEX,IN_MOBTEL,IN_REQDATE,IN_REMITEM,IN_STATE,IN_TIMESTAMP对应的值)
7.DB2怎样创建存储过程
CREATE PROCEDURE "DB2INST2"."SP_SF_GET_PRESC"
(IN "V_GHXH" BIGINT,
IN "V_RECORDSTATUS" SMALLINT,
IN "V_TYPE" SMALLINT,
IN "V_PRESCNO" BIGINT,
IN "V_ISQX" SMALLINT,
OUT "ERR_CODE" INTEGER,
OUT "ERR_TEXT" VARCHAR(100)
)
LANGUAGE SQL
NOT DETERMINISTIC
CALLED ON NULL INPUT
EXTERNAL ACTION
OLD SAVEPOINT LEVEL
MODIFIES SQL DATA
INHERIT SPECIAL REGISTERS
P1: BEGIN
DECLARE SQLCODE INT;
DECLARE V_CFQX SMALLINT;
DECLARE V_SFFYKS BIGINT;--
DECLARE V_YBDM CHAR(4);
--具体实现
END P1;
8.如何执行db2存储过程
1、db2 create database 数据库名 <;-- 创建数据库
2、db2 connect to 数据库名 user 用户名 using 用户密码 <;-- 连接数据库
3、db2 -tvf otpdb_v3_db2.sql <;-- 为新建数据库建立表结构
4、db2 -td@ -f 存储过程文件绝对路径 <;-- 导入存储过程,无错误会提示成功
4、调用存储过程:
Windows 下:db2 call 存储过程名(参数1,参数2)
AIX 下:db2 <;-- 要先进入DB2,方可调用存储过程或执行SQL语句
db2=>call 存储过程名(参数1,参数2)
5、验证插入数据是否成功
Windows 下:db2 select count(*) from FTOTP_USERINFO
AIX 下:db2 <;-- 要先进入DB2,方可调用存储过程或执行SQL语句
db2=>select count(*) from FTOTP_USERINFO
Windows 下:db2 select count(*) from FTOTP_TOKENINFO
AIX 下:db2 <;-- 要先进入DB2,方可调用存储过程或执行SQL语句
db2=>select count(*) from FTOTP_TOKENINFO
sql怎么写存储过程
1. 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
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数据库这个存储过程应该如何写
两个方案:
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库建立计划任务,定时调用上述的存储过程。按需要,可以几分钟一次,也可以几天一次。
5. 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。
oracle的存储过程怎么写
1. ORACLE存储过程的写法
oracle 存储过程的基本语法 1.基本结构 CREATE OR REPLACE PROCEDURE 存储过程名字 ( 参数1 IN NUMBER, 参数2 IN NUMBER ) IS 变量1 INTEGER :=0; 变量2 DATE; BEGIN END 存储过程名字 2.SELECT INTO STATEMENT 将select查询的结果存入到变量中,可以同时将多个列存储多个变量中,必须有一条 记录,否则抛出异常(如果没有记录抛出NO_DATA_FOUND) 例子: BEGIN SELECT col1,col2 into 变量1,变量2 FROM typestruct where xxx; EXCEPTION WHEN NO_DATA_FOUND THEN xxxx; END; 。 3.IF 判断 IF V_TEST=1 THEN BEGIN do something END; END IF; 4.while 循环 WHILE V_TEST=1 LOOP BEGIN XXXX END; END LOOP; 5.变量赋值 V_TEST := 123; 6.用for in 使用cursor 。 IS CURSOR cur IS SELECT * FROM xxx; BEGIN FOR cur_result in cur LOOP BEGIN V_SUM :=cur_result.列名1+cur_result.列名2 END; END LOOP; END; 7.带参数的cursor CURSOR C_USER(C_ID NUMBER) IS SELECT NAME FROM USER WHERE TYPEID=C_ID; OPEN C_USER(变量值); LOOP FETCH C_USER INTO V_NAME; EXIT FETCH C_USER%NOTFOUND; do something END LOOP; CLOSE C_USER; 8.用pl/sql developer debug 连接数据库后建立一个Test WINDOW 在窗口输入调用SP的代码,F9开始debug,CTRL+N单步调试
蓝屏
2. Oracle数据库的存储过程怎么写
Oracle存储过程基本语法:
CREATE OR REPLACE PROCEDURE 存储过程名
IS
BEGIN
NULL;
END;解释:
行1:
CREATE OR REPLACE PROCEDURE 是一个SQL语句通知Oracle数据库去创建一个叫做skeleton存储过程, 如果存在就覆盖它;
行2:
IS关键词表明后面将跟随一个PL/SQL体。
行3:
BEGIN关键词表明PL/SQL体的开始。
行4:
NULL PL/SQL语句表明什么事都不做,这句不能删去,因为PL/SQL体中至少需要有一句;
行5:
END关键词表明PL/SQL体的结束。
3. Oracle 的存储过程怎么写
oracle 存储过程的基本语法
1.基本结构
CREATE OR REPLACE PROCEDURE 存储过程名字
(
参数1 IN NUMBER,
参数2 IN NUMBER
) IS
变量1 INTEGER :=0;
变量2 DATE;
BEGIN
END 存储过程名字
2.SELECT INTO STATEMENT
将select查询的结果存入到变量中,可以同时将多个列存储多个变量中,必须有一条
记录,否则抛出异常(如果没有记录抛出NO_DATA_FOUND)
例子:
BEGIN
SELECT col1,col2 into 变量1,变量2 FROM typestruct where xxx;
EXCEPTION
WHEN NO_DATA_FOUND THEN
xxxx;
END;
3.IF 判断
IF V_TEST=1 THEN
BEGIN
do something
END;
END IF;
4.while 循环
WHILE V_TEST=1 LOOP
BEGIN
XXXX
END;
END LOOP;
5.变量赋值
V_TEST := 123;
6.用for in 使用cursor
IS
CURSOR cur IS SELECT * FROM xxx;
BEGIN
FOR cur_result in cur LOOP
BEGIN
V_SUM :=cur_result.列名1+cur_result.列名2
END;
END LOOP;
END;
7.带参数的cursor
CURSOR C_USER(C_ID NUMBER) IS SELECT NAME FROM USER WHERE TYPEID=C_ID;
OPEN C_USER(变量值);
LOOP
FETCH C_USER INTO V_NAME;
EXIT FETCH C_USER%NOTFOUND;
do something
END LOOP;
CLOSE C_USER;
8.用pl/sql developer debug
连接数据库后建立一个Test WINDOW
在窗口输入调用SP的代码,F9开始debug,CTRL+N单步调试
4. 如下题请经常写存储过程懂数据库Oracle或者你知道如何写都帮帮我更
create procedure test is cursor custom_list is select id from khexpinfo; custom_dic custom_list%ROWTYPE;my_custom_id in number(20);begin for custom_dic in custom_list loopbeginselect distinct b.customer_id into my_custom_id from centermaterialusedetail c ,batchinfo b where c.export_uid=custom_dic.id and c.batchinfo_uid=b.fuid;update khexpinfo set customer_id=my_custom_id where id=custom_dic.id;exception when others thenmy_custom_id:=0;end;end loop;commit;end;。
5. oracle的存储过程怎么写
create or replace function pagesize(p_sql varchar2,pno number,pnosize number,pcount out number)
return sys_refcursor
as
v_sql varchar(2000);
ccount number;
tmpsql varchar2(2000);
cur_data sys_refcursor;
begin
v_sql:='select count(*) from ('||p_sql||') t';
tmpsql:='select * from (select rownum rowa,d.* from ('||p_sql||') d where rownum'||(pno-1)*pnosize;
execute immediate v_sql into ccount;
pcount:=ceil(ccount/pnosize);
open cur_data for tmpsql;
return cur_data;
end;
这是一个分页的存储过程
6. oracle存储过程怎么写
一、无参程序过程语法
create or replace procedure NoParPro
as ;
begin
;
exception //存储过程异常
;
end;
二、带参存储过程实例
create or replace procedure queryempname(sfindno emp.empno%type) as
sName emp.ename%type;
sjob emp.job%type;
begin
.
exception
.
end;
三、带参数存储过程含赋值方式
create or replace procedure runbyparmeters (isal in emp.sal%type, sname out varchar,sjob in out varchar)
as icount number;
begin
select count(*) into icount from emp where sal>isal and job=sjob;
if icount=1 then
.
else
.
end if;
exception
when too_many_rows then
DBMS_OUTPUT.PUT_LINE('返回值多于1行');
when others then
DBMS_OUTPUT.PUT_LINE('在RUNBYPARMETERS过程中出错!');
end;
在Oracle中对存储过程的调用
过程调用方式一
declare
realsal emp.sal%type;
realname varchar(40);
realjob varchar(40);
begin //存储过程调用开始
realsal:=1100;
realname:='';
realjob:='CLERK';
runbyparmeters(realsal,realname,realjob); --必须按顺序
DBMS_OUTPUT.PUT_LINE(REALNAME||' '||REALJOB);
END; //过程调用结束
过程调用方式二
declare
realsal emp.sal%type;
realname varchar(40);
realjob varchar(40);
begin //过程调用开始
realsal:=1100;
realname:='';
realjob:='CLERK';
runbyparmeters(sname=>realname,isal=>realsal,sjob=>realjob); --指定值对应变量顺序可变
DBMS_OUTPUT.PUT_LINE(REALNAME||' '||REALJOB);
END; //过程调用结束
给你参考一下,希望对你有所帮助
祝你好运
7. oracle怎么写存储过程
给你示例你参考下:
----------------------------建立存储过程:
CREATE OR REPLACE PROCEDURE P_name--存储过程名字
(
i_var in int, --输入参数1
o_var OUT varchar2 --输出参数1
)
IS
v_STR VARCHAR2(200); --定义存储过程内部的局部变量
BEGIN
--下面是存储过程的主体实现部分
v_STR := i_var;
dbms_output.put_line(v_STR);
o_var := v_STR;
exception--错误异常处理部分
when others then
dbms_output.put_line(sqlerrm);--打印错误信息
END P_name;
-----------------------------------调用存储过程示例:
declare
v_in int;
v_out varchar2(50);
begin
v_in :=100;
P_name (v_in,v_out); --调用存储过程P_name
dbms_output.put_line('存储过程输入结果为:'||v_out);
exception--错误异常处理部分
when others then
dbms_output.put_line(sqlerrm);--打印错误信息
end;
存储过程怎么写的
1. 存储过程怎么写
比如
if exists (select name from sysobjects where name = 'proc_ManagerLogin')
begin
drop procedure proc_ManagerLogin
end
go
create procedure proc_ManagerLogin
@return bit output ,@username varchar(59),@password varchar(32)
as
begin
if exists(select * from systemManager where adminName=@username and adminpass=@password)
begin
set @return=1
--在系统日志中记录
exec proc_SystemLog_add '管理员登陆','进入了后台'
end
else
begin
set @return=0
end
end
go
2. 存储过程怎么写
CREATE PROCEDURE [拥有者.]存储过程名[;程序编号]
[(参数#1,…参数#1024)]
[WITH
{RECOMPILE | ENCRYPTION | RECOMPILE, ENCRYPTION}
]
[FOR REPLICATION]
Create procedure procedue_name
[@parameter data_type][output]
[with]{recompile|encryption}
as
sql_statement
例子:create proc query_book
as
select * from book
go
exec query_book
3. 存储过程怎么写啊
select 存储过程
CREATE PROCEDURE Sp_dream_Select (@ID Bigint ) AS
SELECT name,password
FROM dream WHERE ID = @ID
GO
insert存储过程
CREATE PROCEDURE Sp_dream_Edit
(
@ID bigint output , --成功后返回单据ID
@name varchar (14),
@password varchar(60),
)
AS
BEGIN
INSERT INTO dream(id,name,password )
VALUES (@id,@name,@password );
END
RETURN
GO
update存储过程
CREATE PROCEDURE Sp_dream_Edit
(
@ID bigint output , --成功后返回单据ID
@name varchar(14),
@password varbinary(256)
)
AS
BEGIN
UPDATE dream
SET
name = @name,
password = @password ,
WHERE id = @id;
END
RETURN
GO
4. 这个句子的存储过程怎么写
存储过程的语法如下:
create proc 过程名
begin
过程主体
end
GO
过程主体可以是你写的查询语句或将查询结果写入某个表,语法与一般SQL同,至于你想加入变量,可以用类似下面的语句定义与赋值:
declare @startdate datetime,
@enddate datetime
select @enddate='2008-1-1',@startdate='2007-1-1'
这样就可以用你写的语句调用了,不过不需要分号与加号
5. 怎么写存储过程
一、整体格式。存储过程的格式如下:
CREATE PROCEDURE [creator.]"proc_name" ( /* parameters,。 */ )
/* RESULT ( column-name,。 ) */
BEGIN
;
END
其中creator是用户名,比如dba;proc_name是你自己起的过程名;后面的参数可有可无,视自己情况定,如果有格式如(a integer,b char(50));再下面的RESULT应该是返回值,这个没用过不知道怎么回事!
二、内容。把这些都写好了可能是这样:
CREATE PROCEDURE dba.myProcedure ( @a integer,@b char(50))
BEGIN
;
END
但是这样子还是不能编译的,因为整个过程体是空的,而我学习的结果是过程中至少要有一个SQL语句。所以要这样写才不会出错:
CREATE PROCEDURE dba.myProcedure ( a integer,b char(50))
BEGIN
SELECT * FROM MyTable
END
三、语法。
1、分号。在写的过程中最郁闷的问题是分号!最后发现好像是这样:
每一句都要加分号,不管是SQl语句还是其它的什么语句,但是最后保存后最后一句的分号会被自动删除!(我用的是Sybase的Sybase Central)。
2、定义变量。
格式为Declare @varName integer;(注意有分号!)“@”号好像可有可无!
3、SELECT语句。
格式为:
SELECT Count(*) INTO @varName FROM MyTable WHERE id = @a;
4、if语句。
格式为:
if(varName > 0) then
return
end if;(注意还有分号!)
5、循环语句。
格式为:
loop
……
end loop;(注意分号!)
6、设置变量值。
格式为:
set @varName = 10;
set @varName = @varName2;
7、字符串。
Declare myString char(50);
set @myString = 'Hello!';
要用单引号!
8、定义游标。
格式为:
declare MyCursor dynamic scroll cursor for
select …… from …… where ……;
9、打开、使用和关闭游标。
Open MyCursor;
fetch next MyCursor into ……;
Close MyCursor;
10、调用方法。
string ls_name="test"
DECLARE ProcName1 PROCEDURE FOR ProcName2
@wg_wellid=2,@wg_wgid=1,@wg_stringsid=1,@bha_wellid=2,@bha_name=:ls_name;
execute ProcName1 ;
close ProcName1 ;
其中ProcName1 是调用程序中自定义的过程名,ProcName2是数据库中存储过程的名字,下面的传入的参数。
6. 求个存储过程的写法
student表的具体表结构没说清楚,没法写啊。
数据库也不清楚用的什么,不同数据库可能语句不一样。
不用存储过程,2条语句就可以了。
以SQL SERVER 2005 为例,给你个参考,假设你student表中记录日期信息的字段名为DateColumn,
如下:
insert into student2
select * from student where getdate() > dateadd(day,31,DateColumn)
delete from student where getdate() > dateadd(day,31,DateColumn)
7. 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。
8. 数据库的存储过程怎么写
1,调用没有参数的存储过程<% set conn=server.CreateObject("adodb.connection") set cmd=server.CreateObject("adodb.command") strconn="dsn=pubs;uid=sa;pwd" conn.Open strconn set cmd.ActiveConnection=conn cmd.CommandText="{call nono}"'set rs=cmc.exe 或者cmd.execute set rs=cmd.Execute()%>2,一个输入的参数的存储过程<% set conn=server.CreateObject("adodb.connection") set cmd=server.CreateObject("adodb.command") strconn="dsn=pubs;uid=sa;pwd" conn.Open strconn set cmd.ActiveConnection=conn cmd.CommandText="{call oneinput(?)}" cmd.Parameters.Append cmd.CreateParameter("@aaa",adInteger ,adParamInput ) cmd("@aaa")=100 cmd.Execute()%>3,一个输入参数和一个输出的参数<% set conn=server.CreateObject("adodb.connection") set cmd=server.CreateObject("adodb.command") strconn="dsn=pubs;uid=sa;pwd" conn.Open strconn set cmd.ActiveConnection=conn cmd.CommandText = "{call oneinout(?,?)}" cmd.Parameters.Append cmd.CreateParameter("@aaa",adInteger,adParamInput) cmd("@aaa")=10 cmd.Parameters.Append cmd.CreateParameter("@bbb",adInteger,adParamOutput) cmd.Execute() bbb=cmd("@bbb")%>4,一个输入参数,一个输出参数,和一个返回值e79fa5e98193e59b9ee7ad9431333332643864<% set conn=server.CreateObject("adodb.connection") set cmd=server.CreateObject("adodb.command") strconn="dsn=pubs;uid=sa;pwd" conn.Open strconn set cmd.ActiveConnection=conn cmd.CommandText="{?=call onereturn(?,?)}" cmd.Parameters.Append cmd.CreateParameter("@return_value",adInteger,adParamReturnValue ) cmd.Parameters.Append cmd.CreateParameter("@aaa",adInteger,adParamInput ) cmd("@aaa")=10 cmd.Parameters.Append cmd.CreateParameter("@bbb",adInteger,adParamOutput) cmd.Execute() bbb=cmd("@bbb") rrr=cmd("@return_value")%>。
9. 如何写存储过程
CREATE PROCEDURE au_info_all
-- 创建存储过程
AS
-- 指定过程要执行的操作。
SELECT au_lname, au_fname, title, pub_name
FROM authors a INNER JOIN titleauthor ta
ON a.au_id = ta.au_id INNER JOIN titles t
ON t.title_id = ta.title_id INNER JOIN publishers p
ON t.pub_id = p.pub_id
GO
-- 操作过程
转载请注明出处育才学习网 » 图书管理系统存储过程怎么写
育才学习网