一个SQL存储过程面试题(比较简单)

三个月前刚毕业的时候,听到存储过程就头疼。





写一个SQL存储过程,建立一个表USER 字段是姓名,年龄,职位,权限,然后向里面插入6条数据,然后查询出年龄大于18的所有信息。





下面是答案:





复制代码

--这是建立表以及插入数据

use pubs

go





create table users(

Name varchar(20),

Age int,

Position varchar(20),

quanxian varchar(20)

)





Insert into users values('111',11,'11111','1111111');





Insert into users values('112',12,'11112','1111112');





Insert into users values('113',13,'11113','1111113');





Insert into users values('114',14,'11114','1111114');





Insert into users values('115',15,'11115','1111115');





Insert into users values('116',19,'11116','1111116');

复制代码

  下面是建立存储过程:(sql server 2005)





复制代码

set ANSI_NULLS ON

set QUOTED_IDENTIFIER ON

go

--这是数据库中的标准写法,当然你也可以不需要这么写。

-- =============================================

-- Author:        <Author,,Name>

-- Create date: <Create Date,,>

-- Description:    <Description,,>

-- =============================================

CREATE PROCEDURE [dbo].[selectUser] 

AS

BEGIN

    -- SET NOCOUNT ON added to prevent extra result sets from

    -- interfering with SELECT statements.

    SET NOCOUNT ON;





    -- Insert statements for procedure here

    select * from users where age>18

END

复制代码

  你也可以如下面这么写:





复制代码

CREATE PROCEDURE selectUser

AS 

BEGIN 





SELECT * FROM users WHERE age>15





END

--下面是执行存储过程的语句

exec selectUser

--标准的写法是:

USE [pubs]

GO





DECLARE @return_value int





EXEC @return_value = [dbo].[selectUser]





SELECT 'Return Value' = @return_value





GO





复制代码

  删除存储过程的语句:





复制代码

--标准写法

USE [pubs]

GO

/****** 对象:  StoredProcedure [dbo].[selectUser]    脚本日期: 07/17/2011 16:10:44 ******/

IF  EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[selectUser]') AND type in (N'P', N'PC'))

DROP PROCEDURE [dbo].[selectUser]





--不太标准的写法(一般自己写存储过程,谁那么标准啊,直接DROP就得了)

DROP PROCEDURE selectUser;

上一篇:smartjs 0.3 DataManager 发布&介绍


下一篇:iOS实现OAuth2.0中刷新access token并重新请求数据操作