baiduligang

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


写一个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;

分类:

技术点:

相关文章: