Sql 存储过程中的变量

Sql 存储过程中的变量,sql,sql-server,tsql,Sql,Sql Server,Tsql,这是一个与MS SQL Server相关的一般性问题 我想在存储过程中使用一个内部变量。我声明的所有变量都允许用户输入。有没有办法创建一个不向“用户”公开的变量?我知道我可以使变量成为可选的 谢谢是的,只需在过程主体内声明变量,而不是作为输入参数: CREATE PROCEDURE SomeProc --these are input parameters which the user/caller can specify values for @parameter1 nvarcha

这是一个与MS SQL Server相关的一般性问题

我想在存储过程中使用一个内部变量。我声明的所有变量都允许用户输入。有没有办法创建一个不向“用户”公开的变量?我知道我可以使变量成为可选的


谢谢

是的,只需在过程主体内声明变量,而不是作为输入参数:

CREATE PROCEDURE SomeProc
   --these are input parameters which the user/caller can specify values for
   @parameter1 nvarchar(50),
   @parameter2 int
AS
BEGIN
   DECLARE @parameter3 int; -- this is a variable which is private to the procedure.

   SET @parameter3 = 7; -- this sets the value of the variable. Of course you could set its value another way by taking it from a table, or doing a calculation, whatever you need.

   SELECT somefield FROM sometable WHERE anotherfield = @parameter3;
END

您可能还想了解有关此主题的信息

能否展示您迄今为止的尝试。当然有可能。定义的变量在过程之外是不可访问的。不要混淆参数和变量。从句法上看,它们看起来一样,但却大不相同。