sql 存储过程的调用
发布网友
发布时间:2022-04-09 02:03
我来回答
共4个回答
热心网友
时间:2022-04-09 03:32
--F5
--title
--两个存储过程(sql1,sql2),sql1这个存储过程就是一个查询语句。
--sql2怎么调用sql1这个存储过程,使得通过执行sql2,
--使从SQL1中查询出来的数据导入到SQL2指定的表中。
--假设表是人员表1(人员代码,人员姓名)需要导入到人员表2(人员代码,人员姓名)中
--创建测试表对应人员表1
create table 人员表1
(
人员代码 varchar(20),
人员姓名 varchar(20)
)
--创建测试表对应人员表2
create table 人员表2
(
人员代码 varchar(20),
人员姓名 varchar(20)
)
--插入测试数据
insert into 人员表1
select 'ZJL','周杰伦'
union
select 'XTF','谢霆锋'
union
select 'CYL','蔡依林'
union
select 'ZXC','周星驰'
--查看数据
select * from 人员表1
go
--创建sql1
create proc sql1
as
begin
select * from 人员表1 where 人员姓名 like '周%'
end
go
--创建sql2
create proc sql2
as
begin
--关键的地方
--原型 insert into 表名
------ exec 存储过程
insert into 人员表2
exec sql1
end
go
sql1
go
sql2
热心网友
时间:2022-04-09 04:50
在sql2中调用sql1用 exec sql1就行了。
使从SQL1中查询出来的数据导入到SQL2指定的表中。是什么意思呢?
如果sql2只是指定个表明,然后作为sql1的参数,由sql1执行,是可以的。但是。sql1无法将结果集返回给sql2,如果你真想返回,那么可以将sql1改成一个自定义函数,返回一个表即可。
此外,你只是要把表1的数据导入到表2,有必要这么麻烦吗?
你直接 insert into 表2 select * from 表1 就可以了。搞2个存储过程有什么别的作用?
热心网友
时间:2022-04-09 06:25
create proc sp1
as
begin
select * from 人员表1
end
create proc sp2
as
begin
insert 人员表2(人员代码,人员姓名)
exec sp1
end
热心网友
时间:2022-04-09 08:16
可以把sql1 作为一一个参数传给sql2咯
这样你在sql2中直接 exec 参数名 就可以调用了
或者直接在sql2中 要调用sql1的时候直接 exec sql1就行