SQL Server 2008 R2 T-SQL表变量参数

日期: 2010-06-22 作者:duanseven 来源:TechTarget中国 英文

  最近装了VS2010尝鲜。在Win7下速度明显快了很多。顺便装了Microsoft SQL Server 2008 R2,在看SQL 2008对T-SQL语法的增强的时候注意到了一个表变量作为参数传递的新语法觉得很不错。

  首先建立一张测试表:

  CREATE TABLE [dbo].[us](
  [id] [int] IDENTITY(1,1) NOT NULL,
  [name] [varchar](50) NULL,
  [pass] [varchar](50) NULL,
  CONSTRAINT [PK_us] PRIMARY KEY CLUSTERED
  (
  [id] ASC
  )WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY]
  ) ON [PRIMARY]

  定义一个自定义表类型:

  CREATE TYPE [dbo].[UsTable] AS TABLE(
  [id] [int] IDENTITY(1,1) NOT NULL,
  [NAME] [varchar](50) NULL
  )

  然后我们写一个存储过程来传递这个类型,这里我们模拟用户批量添加默认密码为123

  CREATE PROC [dbo].[addus]
  @tab [UsTable] READONLY
  AS
  BEGIN
  INSERT INTO us(name,pass) SELECT name,’123′ FROM @tab
  END

  测试一下:

  –-定义一个自定义表类型的变量
  DECLARE @us UsTable
  –插入模拟数据
  INSERT INTO @us (name) VALUES (‘dc’)
  INSERT INTO @us (name) VALUES (‘ada’)
  INSERT INTO @us (name) VALUES (‘dacey’)
  –执行存储过程
  EXEC dbo.addus @tab = @us

  查询us表看下是否都插入进去了:

  1 dc 123

  2 ada 123

  3 dacey 123

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

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

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

微信公众号

TechTarget微信公众号二维码

TechTarget

官方微博

TechTarget中国官方微博二维码

TechTarget中国

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

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

相关推荐