- 创建一个名为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
- 你在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
- 创建一个名为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
- 首先自定义一个错误号为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 PROC和CREATE PROC语句来实现想要的修改,必须再次授予用户EXECUTE权限。