SQL Server 2008的Transact-SQL语言增强(六)

日期: 2008-09-08 作者:zhanghongju 来源:TechTarget中国

  下面是SQL Server帮助中的示例,演示了如何执行以下操作:创建表值参数类型,声明变量来引用它,填充参数列表,然后将值传递到存储过程。  







 USE AdventureWorks; 
  GO 
  /* 创建一个table类型 */ 
  create TYPE LocationTableType AS TABLE 
  ( LocationName VARchar(50) 
  , CostRate INT ); 
  GO 
  /* 创建一个存储过程,用于从表值参数接收数据 */ 
  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 @LocationTVP 
  AS LocationTableType; 
  /* 添加数据到表值变量 */ 
  insert INTO @LocationTVP (LocationName, CostRate) 
  select [Name], 0.00 
  FROM 
  [AdventureWorks].[Person].[StateProvince]; 
  /* 传递表值变量数据给存储过程 */ 
  &#101xec usp_insertProductionLocation @LocationTVP; 
  GO 

  9.Transact-SQL行构造函数


  增强后的Transact-SQL可以允许将多个值插入单个insert语句中,语法比较简单。参考下面的代码: 







 /* 创建一个表 */ 
  create TABLE dbo.T1( 
  CustName char(20) , 
  ProductID int , 
  MadeFrom char(20) , 
  Sales numeric(20, 2) 
  ) 
  /* 插入2行数据 */ 
  insert INTO dbo.T1 
  VALUES (’Jane’,1,’China’,20.00), 
  (’Jack’,2,’USA’,10.00) 

我们一直都在努力坚持原创.......请不要一声不吭,就悄悄拿走。

我原创,你原创,我们的内容世界才会更加精彩!

【所有原创内容版权均属TechTarget,欢迎大家转发分享。但未经授权,严禁任何媒体(平面媒体、网络媒体、自媒体等)以及微信公众号复制、转载、摘编或以其他方式进行使用。】

微信公众号

TechTarget微信公众号二维码

TechTarget

官方微博

TechTarget中国官方微博二维码

TechTarget中国

电子邮件地址不会被公开。 必填项已用*标注

敬请读者发表评论,本站保留删除与本文无关和不雅评论的权力。

相关推荐