科技行者

行者学院 转型私董会 科技行者专题报道 网红大战科技行者

知识库

知识库 安全导航

至顶网软件频道SQL Server 2008 对 T-SQL 语言的增强(3)

SQL Server 2008 对 T-SQL 语言的增强(3)

  • 扫一扫
    分享文章到微信

  • 扫一扫
    关注官方公众号
    至顶头条

现在,SQL Server 提供一种新的用户自定义数据类型——自定义表数据类型(User-defined Table Types)。它可以作为参数提供给语句、存储过程或者函数。

作者:豆豆网 来源:豆豆网 2008年1月29日

关键字: SQL 2008 SQL SQL Server SQL Server 2008

  • 评论
  • 分享微博
  • 分享邮件
5. 用户自定义表数据类型

  现在,SQL Server 提供一种新的用户自定义数据类型——自定义表数据类型(User-defined Table Types)。它可以作为参数提供给语句、存储过程或者函数。您还可以为它创建唯一约束和主键。

  请使用 CREATE TYPE 语句创建这种数据类型。如:

USE AdventureWorks;
GO
/* Create a user-defined table type */
CREATE TYPE LocationTableType AS TABLE
( LocationName VARCHAR(50)
, CostRate INT );
GO

  对于表类型,有如下约束:

  1、用户自定义表类型不能作为表的列或者结构化用户自定义类型的域。

  2、基于用户自定义表类型的别名类型。

  3、不允许 NOT FOR REPLICATION 选项。

  4、CHECK 约束需要一个计算列。

  5、在计算列上的主键必须包含 NOT NULL 和 PERSISTED 约束。

  6、不能在用户自定义表类型上创建非簇索引。除非索引是创建 PRIMARY KEY 或 UNIQUE 约束的返回值。

  7、不能指定 DEFAULT 值。

  8、一旦用户自定义表类型被创建,则它就无法更改。

  9、如果没有定义用户自定义表类型上的计算列,则用户自定义函数无法调用。

  6. 表值参数

  数据库引擎现在支持一种新的参数类型来引用用户自定义表类型(参考 5)。表值参数可以发送更多的 SQL Server 数据。

  下面的示例展示了如何使用表值参数。

USE AdventureWorks;
GO
/* Create a table type. */
CREATE TYPE LocationTableType AS TABLE
( LocationName VARCHAR(50)
, CostRate INT );
GO
/* Create a procedure to receive data for the table-valued parameter. */
CREATE PROCEDURE usp_InsertProductionLocation
  @TVP LocationTableType READONLY
  AS
  SET NOCOUNT ON
  INSERT INTO [AdventureWorks].[Production].[Location]
      ([Name]
      ,[CostRate]
      ,[Availability]
      ,[ModifiedDate])
    SELECT *, 0, GETDATE()
    FROM @TVP;
    GO
/* Declare a variable that references the type. */
DECLARE @LocationTVP
AS LocationTableType;
/* Add data to the table variable. */
INSERT INTO @LocationTVP (LocationName, CostRate)
  SELECT [Name], 0.00
  FROM
  [AdventureWorks].[Person].[StateProvince];
/* Pass the table variable data to a stored procedure. */
EXEC usp_InsertProductionLocation @LocationTVP;
GO

  7. MERGE 语句

    • 评论
    • 分享微博
    • 分享邮件
    邮件订阅

    如果您非常迫切的想了解IT领域最新产品与技术信息,那么订阅至顶网技术邮件将是您的最佳途径之一。

    重磅专题
    往期文章
    最新文章