当前位置:首页 » 存储配置 » c执行mysql存储过程

c执行mysql存储过程

发布时间: 2025-03-06 07:29:53

① 关于mysql存储过程

create table mytb
(tid int,
subject varchar(100),
content varchar(100))

eg:测试数据:
20 计算机应用 应用软件开发
21 计算机操作系统 操作系统详解
22 c# c#开发实战
=======================================
说明一点:tid编号是连续的,如(1,2,3,4···)

存储过程如下,测试通过:

create proc my_search
@beg_id int ,
@end_id int
as

declare @names varchar(200),
@bcp varchar(8000)
if(@beg_id<@end_id)
begin

while @beg_id<=@end_id
begin
select @names=subject from mytb where tid=@beg_id
set @bcp = 'bcp "SELECT content FROM 数据库名.dbo.mytb where tid = ' + rtrim(@beg_id) + '" queryout "E:\11\' + rtrim(@names) + '.txt" -c -U"sa" -P"sa"'

EXEC master..xp_cmdshell @bcp
set @beg_id=@beg_id+1
end
end

==================加路径后过程==============

--exec my_search 20,21,'E:\11'

ALTER proc my_search
@beg_id int ,
@end_id int ,
@path varchar(200)
as

if(right(@path,1)='\')
begin
set @path=left(@path,len(@path)-1)
end

declare @names varchar(200),
@bcp varchar(8000)
if(@beg_id<@end_id)
begin

while @beg_id<=@end_id
begin
select @names=subject from mytb where tid=@beg_id
set @bcp = 'bcp "SELECT content FROM cdma.dbo.mytb where tid = ' + rtrim(@beg_id) + '" queryout "'+@path+'\' + rtrim(@names) + '.txt" -c -U"sa" -P"sa"'

EXEC master..xp_cmdshell @bcp
set @beg_id=@beg_id+1
end
end

=======
呵呵,很抱歉啊 楼主,没能实现你的要求,
MSSQL我不熟,我想语法大概也是差不多吧,

② mysql 存储过程

.关于MySQL的存储过程

存储过程是数据库存储的一个重要的功能,但是MySQL在5.0以前并不支持存储过程,这使得MySQL在应用上大打折扣。好在MySQL 5.0终于开始已经支持存储过程,这样即可以大大提高数据库的处理速度,同时也可以提高数据库编程的灵活性。

MySQL存储过程的创建

(1).格式

MySQL存储过程创建的格式:CREATE PROCEDURE过程名([过程参数[,...]])
[特性...]过程体

这里先举个例子:

  • mysql>DELIMITER//

  • mysql>CREATEPROCEDUREproc1(OUTsint)

  • ->BEGIN

  • ->SELECTCOUNT(*)INTOsFROMuser;

  • ->END

  • ->//

  • mysql>DELIMITER;


  • 注:
  • (1)这里需要注意的是DELIMITER //和DELIMITER ;两句,DELIMITER是分割符的意思,因为MySQL默认以";"为分隔符,如果我们没有声明分割符,那么编译器会把存储过程当成SQL语句进行处理,则存储过程的编译过程会报错,所以要事先用DELIMITER关键字申明当前段分隔符,这样MySQL才会将";"当做存储过程中的代码,不会执行这些代码,用完了之后要把分隔符还原。

    (2)存储过程根据需要可能会有输入、输出、输入输出参数,这里有一个输出参数s,类型是int型,如果有多个参数用","分割开。

    (3)过程体的开始与结束使用BEGIN与END进行标识。

③ mysql执行存储过程语句怎么写

mysql用call命令执行存储过程,例如

calluser_add();

上面的sql就执行了一个名字叫user_add的存储过程

④ 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)c执行mysql存储过程扩展阅读:

注意事项

存储过程(stored procere)是一组为了完成特定功能的SQL语句集合,经编译后存储在服务器端的数据库中,利用存储过程可以加速SQL语句的执行。

存储过程分为系统存储过程和自定义存储过程。

系统存储过程在master数据库中,但是在其他的数据库中可以直接调用,并且在调用时不必在存储过程前加上数据库名,因为在创建一个新数据库时,系统存储过程在新的数据库中会自动创建。

自定义存储过程,由用户创建并能完成某一特定功能的存储过程,存储过程既可以有参数又有返回值,但是它与函数不同,存储过程的返回值只是指明执行是否成功,并不能像函数那样被直接调用,只能利用execute来执行存储过程。

创建存储过程

SQL Server创建存储过程:

create procere 过程名

@parameter 参数类型

@parameter 参数类型

。。。

as

begin

end

执行存储过程:execute 过程名

⑤ mysql 存储过程

使用default关键字设置时间的默认值,
建立一个存储过程向表中插入数据,这个需要用到参数,起始和一般的SQL语句是一样的,只不过进行了编译,并且使用了变量参数
create procere insertIntoTable1(@name char(20),@pass char(40))
as
begin
insert into Table1(name,pass)
values(@name,@pass)
end

然后执行excecute insertIntoTable1 '姓名1','密码1'
就可以了,因为id是自动增长的,regtime 有了默认值,可以不为其指定具体的值,
呵呵,希望能有帮助,^_^

热点内容
ES开脚本 发布:2025-03-06 15:12:15 浏览:532
直播服务器怎么连接电脑 发布:2025-03-06 15:09:56 浏览:663
如何更改admini密码 发布:2025-03-06 15:09:54 浏览:670
androidndk配置环境变量 发布:2025-03-06 15:08:24 浏览:471
oppor9应用加密在哪 发布:2025-03-06 15:02:06 浏览:855
ehome平台服务器ip 发布:2025-03-06 14:43:22 浏览:986
win8取消账户登录密码怎么设置 发布:2025-03-06 14:43:15 浏览:434
如何看电脑配置系统 发布:2025-03-06 14:41:09 浏览:470
剑网3为什么总显示服务器繁忙 发布:2025-03-06 14:26:23 浏览:641
冒险岛手游公会战脚本 发布:2025-03-06 14:16:32 浏览:952