⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 严琼.sql

📁 1. 编写程序过程
💻 SQL
字号:

USE XSBOOK

--1. 编写程序过程,返回所有读者的平均年龄;
-- =============================================
-- Create procedure basic template
-- =============================================
-- creating the store procedure
IF EXISTS (SELECT name 
	   FROM   sysobjects 
	   WHERE  name = N'AVG_Year' 
	   AND 	  type = 'P')
    DROP PROCEDURE AVG_Year
GO

CREATE PROCEDURE AVG_Year
AS
	SELECT AVG(YEAR(GETDATE())-YEAR(出生时间)) AS 平均年龄
        FROM xs
GO

-- =============================================
-- example to execute the store procedure
-- =============================================
EXECUTE AVG_Year
GO



--2. 编写存储过程,获取读者当前借书总数;
-- =============================================
-- Create procedure basic template
-- =============================================
-- creating the store procedure
IF EXISTS (SELECT name 
	   FROM   sysobjects 
	   WHERE  name = N'Read_all' 
	   AND 	  type = 'P')
    DROP PROCEDURE Read_all
GO

CREATE PROCEDURE  Read_all
AS
	SELECT SUM(借书量) as 借书总数
        FROM xs
GO

-- =============================================
-- example to execute the store procedure
-- =============================================
EXECUTE Read_all
GO



--3. 编写带游标类型输出参数的存储过程,返回借阅了图书“Web站点安全 ”的读者信息的游标变量。
-- =============================================
-- Create procedure with CURSOR OUTPUT Parameters
-- =============================================
-- drop the store procedure if it already exists
IF EXISTS (SELECT name 
	   FROM   sysobjects 
	   WHERE  name = N'reader_cursor'
	   AND 	  type = 'P')
	DROP PROCEDURE reader_cursor
GO


-- create the store procedure 
CREATE PROCEDURE reader_cursor @reader_cur CURSOR VARYING OUTPUT
AS
SET @reader_cur = CURSOR FORWARD_ONLY STATIC FOR
     SELECT DISTINCT xs.借书证号,姓名,专业名,性别,出生时间,借书量,book.书名
     FROM xs,book,JY
     WHERE 书名='Web站点安全' and xs.借书证号=JY.借书证号 and JY.ISBN=book.ISBN
    
    OPEN @reader_cur
GO


-- =============================================
-- example to execute the store procedure
-- =============================================
DECLARE @mycursor CURSOR

EXEC reader_cursor @reader_cur=@mycursor OUTPUT
FETCH NEXT FROM @mycursor
WHILE (@@FETCH_STATUS = 0)
BEGIN
    FETCH NEXT FROM @mycursor
END

CLOSE @mycursor

DEALLOCATE @mycursor
GO




⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -