Sql server 添加sp参数sql server而不修改存储过程请求
我有一个名为Sql server 添加sp参数sql server而不修改存储过程请求,sql-server,Sql Server,我有一个名为SPExample的示例存储过程 我想在不使用此语法的情况下将名为TestParam的参数添加到此存储过程中 Alter PROCEDURE SPExample @TestParamint AS BEGIN ... END 是否有类似这样的语法:Alter PROCEDURE SPExample Add parameter…或任何其他替代方法?简短回答: 不,你不能 详细答案: Alter procedure有3种不同的语法,如下所示: SQL Server语法: ALT
SPExample
的示例存储过程
我想在不使用此语法的情况下将名为TestParam
的参数添加到此存储过程中
Alter PROCEDURE SPExample
@TestParamint
AS
BEGIN
...
END
是否有类似这样的语法:
Alter PROCEDURE SPExample Add parameter…
或任何其他替代方法?简短回答:
不,你不能
详细答案:
Alter procedure有3种不同的语法,如下所示:
SQL Server语法:
ALTER { PROC | PROCEDURE } [schema_name.] procedure_name [ ; number ]
[ { @parameter [ type_schema_name. ] data_type }
[ VARYING ] [ = default ] [ OUT | OUTPUT ] [READONLY]
] [ ,...n ]
[ WITH <procedure_option> [ ,...n ] ]
[ FOR REPLICATION ]
AS { [ BEGIN ] sql_statement [;] [ ...n ] [ END ] }
[;]
<procedure_option> ::=
[ ENCRYPTION ]
[ RECOMPILE ]
[ EXECUTE AS Clause ]
Azure SQL数据库语法:
ALTER { PROC | PROCEDURE } [schema_name.] procedure_name
[ { @parameter [type_schema_name. ] data_type }
[ VARYING ] [= default ] [ [ OUT [ PUT ]
] [,...n ]
[ WITH <procedure_option> [ , ...n ] ]
[ FOR REPLICATION ]
AS
{ <sql_statement> [...n ] }
[;]
<procedure_option> ::=
[ ENCRYPTION ]
[ RECOMPILE ]
[ EXECUTE_AS_Clause ]
<sql_statement> ::=
{ [ BEGIN ] statements [ END ] }
ALTER{PROC|PROCEDURE}[schema_name.]PROCEDURE_name
[{@parameter[type\u schema\u name.]data\u type}
[变化][=默认值][[OUT[PUT]
][,…n]
[与[,…n]]
[用于复制]
作为
{[…n]}
[;]
::=
[加密]
[重新编译]
[按条款执行]
::=
{[BEGIN]语句[END]}
请注意,在上述所有3种语法中,sql\u语句
是语法的一个必需部分。[
和]
中的部分是可选的,请在此处阅读有关Transact-sql语法约定的更多信息:
正如您在上面的语法中看到的,没有任何语法与您请求的语法相同
阅读更多信息:简短回答: 不,你不能 详细答案: Alter procedure有3种不同的语法,如下所示: SQL Server语法:
ALTER { PROC | PROCEDURE } [schema_name.] procedure_name [ ; number ]
[ { @parameter [ type_schema_name. ] data_type }
[ VARYING ] [ = default ] [ OUT | OUTPUT ] [READONLY]
] [ ,...n ]
[ WITH <procedure_option> [ ,...n ] ]
[ FOR REPLICATION ]
AS { [ BEGIN ] sql_statement [;] [ ...n ] [ END ] }
[;]
<procedure_option> ::=
[ ENCRYPTION ]
[ RECOMPILE ]
[ EXECUTE AS Clause ]
Azure SQL数据库语法:
ALTER { PROC | PROCEDURE } [schema_name.] procedure_name
[ { @parameter [type_schema_name. ] data_type }
[ VARYING ] [= default ] [ [ OUT [ PUT ]
] [,...n ]
[ WITH <procedure_option> [ , ...n ] ]
[ FOR REPLICATION ]
AS
{ <sql_statement> [...n ] }
[;]
<procedure_option> ::=
[ ENCRYPTION ]
[ RECOMPILE ]
[ EXECUTE_AS_Clause ]
<sql_statement> ::=
{ [ BEGIN ] statements [ END ] }
ALTER{PROC|PROCEDURE}[schema_name.]PROCEDURE_name
[{@parameter[type\u schema\u name.]data\u type}
[变化][=默认值][[OUT[PUT]
][,…n]
[与[,…n]]
[用于复制]
作为
{[…n]}
[;]
::=
[加密]
[重新编译]
[按条款执行]
::=
{[BEGIN]语句[END]}
请注意,在上述所有3种语法中,sql\u语句
是语法的一个必需部分。[
和]
中的部分是可选的,请在此处阅读有关Transact-sql语法约定的更多信息:
正如您在上面的语法中看到的,没有任何语法与您请求的语法相同
请阅读此处的详细信息:如果不更改存储过程,则无法添加参数。如果要添加新参数时不想编辑存储过程,则更接近的选项是使用默认参数 事情是这样的
create proc usp_test
(
@param1 int=4,
@param2 int =null,
@param3 int =null
)
as
Begin
END
那些为null的参数不会有任何影响如果不更改存储过程,就不能添加参数。如果您不想在添加新参数时编辑存储过程,更接近的选项是使用默认参数 事情是这样的
create proc usp_test
(
@param1 int=4,
@param2 int =null,
@param3 int =null
)
as
Begin
END
带有null的参数不会有任何影响否,您必须更改过程并更改其定义才能添加另一个参数。否,您必须更改过程并更改其定义才能添加另一个参数。