Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/sql-server-2008/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql server 2008 SQL Server 2008创建SP如果传递了值,则使用值,否则使用默认值_Sql Server 2008_Stored Procedures - Fatal编程技术网

Sql server 2008 SQL Server 2008创建SP如果传递了值,则使用值,否则使用默认值

Sql server 2008 SQL Server 2008创建SP如果传递了值,则使用值,否则使用默认值,sql-server-2008,stored-procedures,Sql Server 2008,Stored Procedures,我有一个存储过程,在一个现有的应用程序中,许多页面都在使用它。我想从一个新页面调用它,并向其中传递一个额外的值,而不会导致调用它的所有其他页面出现问题。在存储过程中,我希望它检测是否有额外的参数/值,如果有,请使用它,否则忽略它并使用默认值。我不确定如何更改存储过程 以下是如何从现有页面调用它: sql = "exec spInsertNewLic " & value1 & "," & value2 下面是我希望新页面使用额外值来命名它的方式: sql = "exec

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

以下是如何从现有页面调用它:

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

将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