用SQL创建存储过程的题目(SQL SERVER2000下)

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了用SQL创建存储过程的题目(SQL SERVER2000下)相关的知识,希望对你有一定的参考价值。

用SQL创建一个存储过程,当输入一个学生的姓名的时候,将从三个表中返回该学生的学号,选修的课程名称和课程成绩。

student表下有sno(主键),sname,sage,ssex,sdept
course表下有cno(主键),cname,ccredit,cpno
sc表下有sno,cno,grade(sno和cno与上面的关联)

完全不懂存储过程,请直接贴上SQL语句,最好有相应说明!
只有三楼的能正常运行

可是明明student表里面存在的条目 (比如王敏)
运行:
exec a '王敏'

下面得到的结果却是空的

关于delphi调用存储过程,用sql
server自带的“创建存储过程向导”给表login建立一个更新存储过程。
悬赏分:100
|
离问题结束还有
12

18
小时
|
提问者:风风我依
|
检举
存储过程代码如下:已知表login有passname和password两个字段。
create
procedure
[update_login_1]
(@passname_1
[varchar],
@passname_2
[varchar](50),
@password_3
[varchar](50))
as
update
[wqzx].[dbo].[login]
set
[passname]
=
@passname_2,
[password]
=
@password_3
where
(
[passname]
=
@passname_1)
go
-------------------------------------------------------------------------------------
在delp调用该存储过程,要求只该改字段中的password,即建一个文本框将里面内容替换一个记录中的password,而保持passname不变,简单讲就是修改一个用户名的密码。怎么写代码?问题补充:
"强唐华"我试过这样写存储过程了,没用的,如果可以,那在delphi中怎么写代码调用这个存储过程?
强调下:这是sql自带建立的存储过程,就是由“创建存储过程向导”生成,我觉得不会错的,问题是怎么在delphi中调用该存储过程,代码呢?
我建立了一个插入的存储过程,代码如下:
with
storedproc1
do
begin
parambyname('@passname_1').asstring:=edit1.text;
parambyname('@password_2').asstring:=edit2.text;
execproc;
if
params[0].asinteger=0
then
messagedlg('添加新用户名成功!',mtinformation,[mbok],0)
else
messagedlg('添加用户失败!',mterror,[mbok],0);
end;
这段代码是可以成功插入一个记录的。现在是想修改某个记录。
回答
共1条
create
procedure
[dbo].[update_login]
(@name
varchar(50),
@password
[varchar](50))
as
update
useres
set
password=@password
where
name=
@name
这么简单的存储过程,都不会用?
sqlconnection
conn
=
new
sqlconnection("data
source=tq-pc;initial
catalog=tq;user
id=sa;password=123");
sqlcommand
cmd
=
new
sqlcommand("update_login",
conn);
cmd.commandtype
=
commandtype.storedprocedure;
cmd.parameters.addwithvalue("@name",
textbox3.text.trim());
cmd.parameters.addwithvalue("@password",
textbox4.text.trim());
conn.open();
int
i
=
cmd.executenonquery();
if
(i
>
0)
response.write("密码修改成功!");
else
response.write("密码修改失败!");
参考技术A SET QUOTED_IDENTIFIER ON
GO
SET ANSI_NULLS ON
GO

create proc a --创建存储过程名字为a,再次运行时将create改为alter
@sname nvarchar(100)='' --传递的参数
as

select a.sno,b.cname,c.grade from student a,course b,sc c --分别给表命名为a,b,c
where a.sname=@sname and a.sno = c.sno and b.cno=c.cno --查询条件

GO
SET QUOTED_IDENTIFIER OFF
GO
SET ANSI_NULLS ON
GO

exec a '名字' --执行存储过程语句,可在存储过程外

这次呢?本回答被提问者采纳
参考技术B create proc myproc
@sname nvarchar(50)
as
declare @sno int --比如是学号
declare @cname nvarchar(50)--比如是课程名称
declare @grade int --比如是课程成绩
select @sno=st.sno,@cname=co.cname,@grade=sc.grade from student as st
inner join sc as sc on sc.sno=st.sno inner join course as co on co.cno=sc.cno where st.sname=@sname
print @sno
print @grade
print @cname
exec myproc '姓名'

你可以根据此存储过程并针对你数据库所需要的字段进行修改,
在不了解你数据库字段意义的情况下只能帮你这么多
参考技术C oracle下的procedure

create or replace procedure get_imfor(name varchar2,no out number,
v_cname out varchar2,v_grade out number)
--name 默认为输入参数,no、v_canme、v_grade为输出参数
is
begin
select a.sno,b.cname,c.grade into no,v_cname,v_grade
from student a,course b,sc c
where a.sno=c.sno and
b.cno=c.cno and
upper(s.name)=upper(name);
--upper()函数将字符串全部小写,也就是忽略大小写的意思
end get_imfor;

这是oralce下的过程,sql server下,就需要你自己稍加修改
参考技术D SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO

CREATE PROCEDURE sp_Getinfo
@ag_sname nchar(10) --传递的参数
AS
BEGIN
select 你想要的字段
from student a,
course b,
sc C
where a.sno = c.sno
and b.cno = c.cno
and trim(a.sname) = @ag_sname --简单的链接,把参数写到语句里
END
GO
--执行语句 EXEC sp_Getinfo '名字'

sql server中怎样创建保存数据的存储过程

在SQL Server中,可以使用两种方法创建存储过程 :
利用SQL Server 管理平台创建存储过程。
使用Transact-SQL语句中的CREATE PROCEDURE命令创建存储过程。
创建存储过程时,需要确定存储过程的几个组成部分:
①所有的输入参数以及传给调用者的输出参数。
②被执行的针对数据库的操作语句,包括调用其它存储过程的语句。
③返回给调用者的状态值,以指明调用是成功还是失败。
④捕获和处理潜在的错误所需的任何错误处理语句
定义存储过程的语法
CREATE PROC[EDURE] 存储过程名
@参数1 数据类型 = 默认值 OUTPUT,
…… ,
@参数n 数据类型 = 默认值 OUTPUT
AS
SQL语句
GO
参考技术A 找到你建的数据库->可编程性->存储过程->单击右键新建:
create procedure [dbo].[book1]
as select BookId , BookName , SimpleCountent
from Book
单击执行按钮->然后刷新一下存储过程即可。
试试吧
参考技术B 保存什么数据?如果是插入数据到表中
直接在存储过程里用Insert into表就可以了追问

保存数据库表中已有的数据信息

追答

还是没看懂

追问

编写一个存储过程,保存产品表中的信息

追答

保存到哪里?

参考技术C 数据库 ->可编辑性 ->存储过程-> 新建存储过程 参考技术D 存储过程其实就是一些SQL语句+特定的格式语句+条件控制语句

以上是关于用SQL创建存储过程的题目(SQL SERVER2000下)的主要内容,如果未能解决你的问题,请参考以下文章

将链接服务器存储过程中的数据插入表中

sql存储过程有什么用

sql中创建关于更新的存储过程

SQL 面试题目汇总

用存储过程好,还是在代码中写SQL语句好

2008SQL 存储过程中可以创建视图吗