• 实现存储过程


    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权限。

     

  • 相关阅读:
    leetcode——448.找到所有数组中消失的数字
    leetcode——268.缺失数字
    leetcode——680.验证回文字符串2
    leetcode——125.验证回文串
    leetcode——217.存在重复元素
    leetcode——189.旋转数组
    02-04 线性回归
    02-03 感知机对偶形式(鸢尾花分类)
    02-02 感知机原始形式(鸢尾花分类)
    02-01 感知机
  • 原文地址:https://www.cnblogs.com/shihao/p/1491837.html
Copyright © 2020-2023  润新知