本人新手,还不会写存储过程,只会写简单的查询语句。我想把这些查询语句写进存储过程然后调用它执行
比如:1,列出至少有一个员工的所有部门。2.列出薪金比“SMITH”多的所有员工。1,selectdeptno,dnamefromdeptwheredeptnoin(se...
比如:
1,列出至少有一个员工的所有部门。
2.列出薪金比“SMITH”多的所有员工。
1, select deptno,dname from dept where deptno in (select deptno from emp);
2, select ename,sal from emp where sal>(select sal from emp where ename ='SMITH');
这两条语句写进存储过程然后调用执行怎么办,有帮忙的朋友请帮我写出详细过程,本人感谢感谢。。 展开
1,列出至少有一个员工的所有部门。
2.列出薪金比“SMITH”多的所有员工。
1, select deptno,dname from dept where deptno in (select deptno from emp);
2, select ename,sal from emp where sal>(select sal from emp where ename ='SMITH');
这两条语句写进存储过程然后调用执行怎么办,有帮忙的朋友请帮我写出详细过程,本人感谢感谢。。 展开
5个回答
展开全部
大哥,返回数据值,是用自定义函数实现
1\
CREATE FUNCTION dbo.FN_dept()
RETURNS @result TABLE(deptno varchar(10),dname varchar(20))
AS
BEGIN
INSERT INTO @result select deptno,dname from dept where deptno in (select deptno from emp)
RETURN
END
--使用SELECT * from dbo.FN_dept()
2\
CREATE FUNCTION dbo.FN_emp(@emp_id int)
RETURNS TABLE
AS
RETURN (select ename,sal from emp where sal>(select sal from emp where ename =@emp_id)
--使用SELECT * from dbo.FN_emp(123)
存储过程最好不要用来返回数据值,只是用来返回成功\失败的ID,或者简单的参数传递值
1\
CREATE FUNCTION dbo.FN_dept()
RETURNS @result TABLE(deptno varchar(10),dname varchar(20))
AS
BEGIN
INSERT INTO @result select deptno,dname from dept where deptno in (select deptno from emp)
RETURN
END
--使用SELECT * from dbo.FN_dept()
2\
CREATE FUNCTION dbo.FN_emp(@emp_id int)
RETURNS TABLE
AS
RETURN (select ename,sal from emp where sal>(select sal from emp where ename =@emp_id)
--使用SELECT * from dbo.FN_emp(123)
存储过程最好不要用来返回数据值,只是用来返回成功\失败的ID,或者简单的参数传递值
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
壹寰(深圳)科技文化有限公司
2021-03-27 广告
2021-03-27 广告
要找正规专业的公司,行业口碑也比较重要。更多详尽准确的信息可以找壹寰(深圳)科技文化有限公司。91数据恢复是壹寰(深圳)科技文化有限公司旗下专业数据恢复品牌,91数据恢复专注于勒索病毒数据恢复、勒索病毒数据修复、数据库修复、数据库解密恢复、...
点击进入详情页
本回答由壹寰(深圳)科技文化有限公司提供
展开全部
存储过程不过是SQL语句的组合函数,复杂的存储过程里面包含很多逻辑判断;存储过程又分有参数和没参数的;像你说的存储过程,如下:
在查询分析器中
create proc showData --存储过程名字
(
@UserName varchar(50)
)
as
select deptno,dname from dept where deptno in (select deptno from emp);
select ename,sal from emp where sal>(select sal from emp where ename =@UserName);
调用的时候:
exec showData 'SMITH'
我说的调用是在查询分析器中;在程序中调用,要分具体的编程语言,.net java php 各不相同吧, 但大体思路是一样的,你再查查;
祝你好运
在查询分析器中
create proc showData --存储过程名字
(
@UserName varchar(50)
)
as
select deptno,dname from dept where deptno in (select deptno from emp);
select ename,sal from emp where sal>(select sal from emp where ename =@UserName);
调用的时候:
exec showData 'SMITH'
我说的调用是在查询分析器中;在程序中调用,要分具体的编程语言,.net java php 各不相同吧, 但大体思路是一样的,你再查查;
祝你好运
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
2011-02-15
展开全部
基本同意一楼的写法,但是这种返回2个查询结果的存储过程在程序里不是很好处理,我觉得这个存储过程在查询分析器里执行比较合适!
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
简单的查询语句干嘛要写存储过程啊。你直接在查询分析器里执行这两条SQL不就行了么?
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
create or replace procedure pro1 is
begin
select deptno,dname from dept where deptno in (select deptno from emp);
select ename,sal from emp where sal>(select sal from emp where ename ='SMITH');
end pro1;
begin
select deptno,dname from dept where deptno in (select deptno from emp);
select ename,sal from emp where sal>(select sal from emp where ename ='SMITH');
end pro1;
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询