使用来自 SQL 服务器管理工作室的可为空参数执行存储过程
Execute stored procedure with a nullable parameter from SQL server management studio
我有一个存储过程,uspUser_GetUserDetails,有几个参数。它被称为这样的:
uspUser_GetUserDetails 'LastName','FirstName', 'UserId', 'dtDate', 'DistrictId'
如果 dtDate
参数为空,我如何 运行 存储过程。我试过了
uspUser_GetUserDetails 'LastName','FirstName','UserId','','DistrictId'
但它什么也没做。这样的事情行得通吗?
uspUser_GetUserDetails 'LastName','FirstName','UserId',null,'DistrictId'
这需要很长时间才能执行查询而不返回任何结果。请注意,问题不在于如何创建具有可空参数的 SP。我的 SP 在 C# 中运行良好,它在参数中显示 sqlvalue {null}。我只是想从 SQL server management studio 快速测试它,并知道在这种情况下如何将 null 参数传递给它。
CREATE PROCEDURE MyProcName
@Parameter1 INT = 1,
@Parameter2 VARCHAR (100) = 'StringValue',
@Parameter3 VARCHAR (100) = NULL
AS
BEGIN
END
使用Optional参数,调用过程时无需传入
事实证明语法对于我后来尝试的所有 SP 都没有问题。而且不存在性能问题。之前uspUser_GetUserDetails 'LastName','FirstName','UserId',null,'DistrictId'
的问题大概是跟"Timeout expired".
有关
或者,EXEC [dbo].[uspSPName]
@LastName = N'LastName'
@FirstName = N'',
@UserId = 0,
@dtDate = NULL,
@DistrictId = 1
我有一个存储过程,uspUser_GetUserDetails,有几个参数。它被称为这样的:
uspUser_GetUserDetails 'LastName','FirstName', 'UserId', 'dtDate', 'DistrictId'
如果 dtDate
参数为空,我如何 运行 存储过程。我试过了
uspUser_GetUserDetails 'LastName','FirstName','UserId','','DistrictId'
但它什么也没做。这样的事情行得通吗?
uspUser_GetUserDetails 'LastName','FirstName','UserId',null,'DistrictId'
这需要很长时间才能执行查询而不返回任何结果。请注意,问题不在于如何创建具有可空参数的 SP。我的 SP 在 C# 中运行良好,它在参数中显示 sqlvalue {null}。我只是想从 SQL server management studio 快速测试它,并知道在这种情况下如何将 null 参数传递给它。
CREATE PROCEDURE MyProcName
@Parameter1 INT = 1,
@Parameter2 VARCHAR (100) = 'StringValue',
@Parameter3 VARCHAR (100) = NULL
AS
BEGIN
END
使用Optional参数,调用过程时无需传入
事实证明语法对于我后来尝试的所有 SP 都没有问题。而且不存在性能问题。之前uspUser_GetUserDetails 'LastName','FirstName','UserId',null,'DistrictId'
的问题大概是跟"Timeout expired".
或者,EXEC [dbo].[uspSPName]
@LastName = N'LastName'
@FirstName = N'',
@UserId = 0,
@dtDate = NULL,
@DistrictId = 1