0

我有一个存储过程,现有应用程序中的许多页面都在使用它。我想从一个新页面调用它并将一个额外的值传递给它,而不会导致调用它的所有其他页面出现问题。在存储过程中,我希望它检测是否存在额外的参数/值,如果存在则使用它,否则忽略它并使用默认值。我不确定如何更改存储过程。

以下是从现有页面调用它的方式:

sql = "exec spInsertNewLic " & value1 & "," & value2

这是我希望新页面使用额外值调用它的方式:

sql = "exec spInsertNewLic " & value1 & "," & value & ", " & value3

我应该如何更改存储过程,例如?

CREATE PROCEDURE spInsertNewLic
(
@value1 int,
@value2 int,
@value3 date
)
AS
set nocount on
declare @myNewVariable date
if @value3 = 'NULL' or @value3 = '' set @myNewVariable = getDate() else @myNewVariable =  @value3
4

1 回答 1

1

将您的 SP 更改为此,您将 value3 的默认值设置为 null,然后您不必更改任何现有代码

CREATE PROCEDURE spInsertNewLic
(
@value1 int,
@value2 int,
@value3 date = null
)
AS
set nocount on
declare @myNewVariable date
if ISNULL(@value3,'') = '' --changed code here, NULL represents nothing
   set @myNewVariable = getDate() 
else 
   set @myNewVariable =  @value3
于 2013-04-02T02:47:19.570 回答