最近装了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中国
作者
相关推荐
-
SQL Server 2016新变化:内存中OLTP功能大改进
SQL Server 2016的许多功能得到改进,内存中OLTP(in-memory OLTP)也不例外,包括扩展性、性能以及扩展T-SQL用于使用和管理内存优化表的功能方面。
-
优化T-SQL提升SQL Server数据库性能
本文中提供了八种优化T-SQL代码避免SQL Server数据库性能瓶颈的技巧,我们可以据此优化数据库应用。
-
配置SQL Server数据库恢复模式的两种方法
本文我们讨论了配置SQL Server恢复模式的两种方式,用T-SQL或者SQL Server管理工具都可以修改恢复模式的设置。
-
用T-SQL在SQL Server 2012中创建用户自定义角色
SQL Server 2012中引入了两项功能,即创建用户自定义服务器角色和分配服务器级别的权限。本文为初级DBA给出了一个用户自定义服务器角色的示范用例。