第 1 页:单选题 |
第 4 页:应用题 |
第 5 页:设计与应用题 |
47设有图书管理数据库,包含三张表:
图书明细表(图书编号,图书类别,图书名称,作者,出版社,出版日期,定价);
读者表(借书证号,姓名,系别,办证日期);
借出信息表(借出编号,借书证号,图书编号,借书日期);
完成下列操作:
定义一个多语句表值函数,用于查询学生借书情况,只需提供参数:借书证号,就可以通过调用函数返回此学生的借书情况,若有借书籍,则返回所借书籍的编号、书籍名称、定价和借书日期;若没有在借书籍,则返回记录为空。设函数名为:f_BorrowBook(@jszh char(20))。
参考解析:
【解题思路】
SQL Server 2008多语句表值函数的格式为:
CREATE FUNCTION[schema_name.]function_name
([{@parameter_name[As][type_schema_name.]parameter data_type
[=default]}
[….n]
]
)
RETURNS@return_variable TABLE
[AS]
BEGIN
function_body
RETURN
END
[;]
::=
({I}
[table_constraint][,...n])
采用三表联合查询,通过传入的借书证号查出借出信息表中的图书编号,然后查出图书明细表的信息。
【参考答案】
CREATE FUNCTION BorrowBook(@jszh char(20))
RETURNS@jsqkb TABLE(书籍编号char(20),书籍名称char(50),定价float,借书日期datetime)
AS
BEGIN
INSERT@jsqkb
SELECT图书明细表.图书编号,图书名称,定价,借出信息表.借书日期FROM借出信息表,图书明细表
WHERE借出信息表.图书编号=图书明细表.图书编号AND借出信息表.借书证号=@jszh
RETURN
END
相关推荐:
北京 | 天津 | 上海 | 江苏 | 山东 |
安徽 | 浙江 | 江西 | 福建 | 深圳 |
广东 | 河北 | 湖南 | 广西 | 河南 |
海南 | 湖北 | 四川 | 重庆 | 云南 |
贵州 | 西藏 | 新疆 | 陕西 | 山西 |
宁夏 | 甘肃 | 青海 | 辽宁 | 吉林 |
黑龙江 | 内蒙古 |