题目
在SQL Server 2008中,设在某数据库中建有如下所示的存储过程[1]:CREATE PROC P1@a int=20,@b char(4)AS … …设有下列调用该存储过程的语句:Ⅰ.EXEC P1 100,′a01′Ⅱ.EXEC P1′a01′Ⅲ.EXEC P1 @b=′a01′Ⅳ.EXEC P1@a=default.@b=′a01′上述语句中,能够正确调用该存储过程的是( )。A. 仅Ⅰ和ⅡB. 仅Ⅰ、Ⅱ和ⅢC. 仅Ⅰ、Ⅲ和ⅣD. 全部
在SQL Server 2008中,设在某数据库中建有如下所示的存储过程[1]:CREATE PROC P1@a int=20,@b char(4)AS … …设有下列调用该存储过程的语句:Ⅰ.EXEC P1 100,′a01′Ⅱ.EXEC P1′a01′Ⅲ.EXEC P1 @b=′a01′Ⅳ.EXEC P1@a=default.@b=′a01′上述语句中,能够正确调用该存储过程的是( )。
A. 仅Ⅰ和Ⅱ
B. 仅Ⅰ、Ⅱ和Ⅲ
C. 仅Ⅰ、Ⅲ和Ⅳ
D. 全部
题目解答
答案
C. 仅Ⅰ、Ⅲ和Ⅳ
解析
步骤 1:分析存储过程的定义
存储过程定义为:CREATE PROC P1 @a int=20, @b char(4) AS ...,其中@a为整型参数,默认值为20,@b为字符型参数,长度为4。
步骤 2:分析调用语句Ⅰ
调用语句Ⅰ:EXEC P1 100, 'a01',其中100赋值给@a,'a01'赋值给@b,符合存储过程的定义,因此能够正确调用。
步骤 3:分析调用语句Ⅱ
调用语句Ⅱ:EXEC P1 'a01',只提供了一个参数,而存储过程需要两个参数,因此不能正确调用。
步骤 4:分析调用语句Ⅲ
调用语句Ⅲ:EXEC P1 @b='a01',只提供了一个参数@b,而@a使用默认值20,因此能够正确调用。
步骤 5:分析调用语句Ⅳ
调用语句Ⅳ:EXEC P1 @a=default, @b='a01',其中@a使用默认值,@b赋值为'a01',因此能够正确调用。
存储过程定义为:CREATE PROC P1 @a int=20, @b char(4) AS ...,其中@a为整型参数,默认值为20,@b为字符型参数,长度为4。
步骤 2:分析调用语句Ⅰ
调用语句Ⅰ:EXEC P1 100, 'a01',其中100赋值给@a,'a01'赋值给@b,符合存储过程的定义,因此能够正确调用。
步骤 3:分析调用语句Ⅱ
调用语句Ⅱ:EXEC P1 'a01',只提供了一个参数,而存储过程需要两个参数,因此不能正确调用。
步骤 4:分析调用语句Ⅲ
调用语句Ⅲ:EXEC P1 @b='a01',只提供了一个参数@b,而@a使用默认值20,因此能够正确调用。
步骤 5:分析调用语句Ⅳ
调用语句Ⅳ:EXEC P1 @a=default, @b='a01',其中@a使用默认值,@b赋值为'a01',因此能够正确调用。