• 实现存储过程


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

     

  • 相关阅读:
    Django(app的概念、ORM介绍及编码错误问题)
    Django(完整的登录示例、render字符串替换和redirect跳转)
    Construct Binary Tree from Preorder and Inorder Traversal
    Single Number II
    Single Number
    Binary Tree Level Order Traversal II
    Binary Tree Level Order Traversal
    Binary Tree Zigzag Level Order Traversal
    Recover Binary Search Tree
    Add Binary
  • 原文地址:https://www.cnblogs.com/shihao/p/1491837.html
Copyright © 2020-2023  润新知