实现存储过程

  1. 创建一个名为FindCustomer存储过程,可以用它来找出SQL SERVER中的northwind数据库的Customer表中,CustomerID为指定值(输入参数)的记录的ContactName字段的名称,然后调用这个存储过程,找出CustomerID’thecr’ContactName字段值,写出创建存储过程的SQL语句和调用的命令,以下选项哪一个是正确的。

 A

创建语句:

USE northwind

GO

CREATE PROCEDURE dbo. FindCustomer

$CustomerID char(5)

LIKE

SELECT contactName

From Customers WHERE CustomerID=$CustomerID

调用语句

EXEC northwind.dbo. FindCustomer

$CustomerID= ‘thecr’

 

B

创建语句:

USE northwind

GO

CREATE PROCEDURE dbo. FindCustomer

@CustomerID char(5)

AS

SELECT contactName

From Customers WHERE @CustomerID=CustomerID

调用语句

EXEC northwind.dbo. FindCustomer

@CustomerID= ‘thecr’

     

      C

创建语句:

USE northwind

GO

CREATE PROCEDURE dbo. FindCustomer

@CustomerID char(5)

AS

SELECT contactName

From Customers WHERE CustomerID=@CustomerID

调用语句

EXEC northwind.dbo. FindCustomer

CustomerID= ‘thecr’

  

  D

创建语句:

USE northwind

GO

CREATE PROCEDURE dbo. FindCustomer

@CustomerID char(5)

LIKE

SELECT contactName

From Customers WHERE CustomerID=@CustomerID

调用语句

EXEC northwind.dbo. FindCustomer

@CustomerID= ‘thecr’

 

: B

 

 

  1. 你在northwind数据库中创建了一个名为overdueOrders的储存过程,而且没被加密。那么以下哪些方法可以查看存储过程的内容。(不定项选择)

  A  EXEC sp_helptext 'overdueOrders'

B  EXEC sp_help overdueOrders

C  EXEC sp_stored_procedures 'overdueOrders'

D  EXEC sp_depends 'overdueOrders'

E   查询syscomments系统表

F   查询sysobjects系统表

 

: AE

 

 

  1. 创建一个名为FindCustomer1的存储过程,可以用它来找出SQL SERVER中的northwind数据库的Customer表中,CustomerID为指定值(输入参数)的记录的ContactName字段的名称,另外指定一个输出参数LineNum做为输出参数,还有必须在存储过程中判断CustomerID不能为空串,是的话要打印出出错信息,并返回错误值-1,如果查询成功在输出变量LineNum中保留选出的行数,然后返回值0。写出相应的SQL语句.

 

:

USE NorthWind

GO

CREATE PROC FindCustomer3

@LineNum int OUTPUT,

@CustomerID char (5)

AS

IF LEN(@CustomerID)=0

  BEGIN

    PRINT 'You must supply a valid CustomerID'

    RETURN -1

  END

SELECT  contactName  

From Customers WHERE CustomerID=@CustomerID 

SET @LineNum = @@ROWCOUNT

RETURN 0

 

 

  1. 首先自定义一个错误号为50512的用户自定义错误,错误的严重级别为10,错误的文本消息为’Can’t find the customer ID. ’,另外消息中还要加上表名和输入的CustomerID,  并且当发生消息时将消息写入 Microsoft® Windows NT® 应用程序日志中。然后创建一个名为ExistCustomerID的存储过程,以用它来找出SQL SERVER中的northwind数据库的Customer表中,指定的CustomerID是否存在,如果存在返回0,如果不存在返回错误号50512,并将消息写入 Microsoft® Windows NT® 应用程序日志中。写出定义错误消息和创建存储过程的语句。

 

: 定义自定义错误消息

EXEC sp_addmessage

@msgnum = 50512,

@severity = 10,

@msgtext =  'Can’t find the customer ID:%s at table %s.',

@with_log ='true'

 

创建存储过程的语句如下

USE NorthWind

GO

CREATE PROC ExistCustomerID

@CustomerID char (5)

AS

SELECT  CustomerID  

From Customers WHERE CustomerID=@CustomerID 

IF @@ROWCOUNT=0

BEGIN

   RAISEERROR(50512, 10, 1, @ CustomerID, @DBNAME)

     RETURN

END

   RETURN  0

 

 

5.      已经创建了一个从数据库中删除客户的存储过程。在删除事务完成时希望有一个自定义的错误信息写入Windows 2000应用程序日志。如何执行该任务

 

: 通过在sp_addmessage存储过程中指定@with_log参数创建一个自定义的错误信息。删除事务提交后,在存储过程中调用RAISERROR语句来生成自定义的错误信息。

 

 

6.      在数据库中必须修改一个存储过程,而有几个用户已被授予了执行该存储过程的权限。执行哪个语句来完成修改而又不影响现有的权限?

 

: ALTER PROC。如果执行DROP PROCCREATE PROC语句来实现想要的修改,必须再次授予用户EXECUTE权限。

 

原文地址:https://www.cnblogs.com/shihao/p/1491837.html