SQL Server 中的表变量

SQL Server 中的表变量像表一样存储一组记录。表变量是临时表的最佳替代品。与局部变量一样,此变量的作用域仅限于用户定义函数或存储过程。

与临时表相比,表变量速度非常快,建议用于少量数据。表变量的语法类似于 Create 语句。

DECLARE @Name TABLE
(
    Column_Name1 Data_Type(Size) [NULL | NOT NULL],
    Column_Name2 Data_Type(Size) [NULL | NOT NULL],
     …
    Column_NameN Data_Type(Size) [NULL | NOT NULL]
);

创建 SQL Server 表变量示例

让我们看看如何在服务器中创建表变量,如何向其中插入新记录,以及如何从中选择记录。

提示:您不能将其用作输入或输出参数。

DECLARE @Records TABLE
(
  [CustomerKey] [int] IDENTITY(1,1) NOT NULL,
  [FirstName] [varchar](50) NULL,
  [LastName] [varchar](50) NULL,
  [BirthDate] [date] NULL,
  [EmailAddress] [nvarchar](50) NULL,
  [Yearly Income] [money] NULL,
  [Profession] [nvarchar](100) NULL
)
-- Inserting Values
INSERT INTO @Records 
VALUES ('Imran', 'Khan', '10-08-1985', 'abc@abc.com', 15900, 'Skilled Professional')
      ,('Doe', 'Lara', '10-08-1985', 'xyz@abc.com', 15000, 'Management')
      ,('Ramesh', 'Kumar', '10-08-1985', 'mnop@abc.com', 65000, 'Professional')

-- Selecting Values
SELECT * FROM @Records
Table Variable Example 1

我们将所有语句一起执行。让我向您展示当我们独立运行它们时会发生什么。

声明此项不会有任何问题!

输出

Must Declare before Error Msg 1087 3

注意:您不需要任何DELETE或 DROP 语句来删除它。当它超出作用域时,数据库引擎将自动删除它。

希望您了解了它的作用域。请参阅临时表用户定义函数存储过程创建表

评论已关闭。