SQL 2008 T-SQL(表变量参数)
来源:互联网 发布:iptv安装第三方软件 编辑:程序博客网 时间:2024/05/03 17:59
文章来源:IT工程信息网 http://www.systhinker.com/?action-viewnews-itemid-17503
最近装了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]
[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
)
[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
@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
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
- SQL 2008 T-SQL(表变量参数)
- SQL 2008 T-SQL(表变量参数)
- T-SQL(1)-变量
- T-Sql变量
- t-sql 变量
- T-SQL变量
- T-SQL-注释、变量 (转载)
- T-SQL 之局部变量(1)
- SQL Server 2008 表变量参数(表值参数)用法
- SQL Server 2008 表变量参数(表值参数)用法
- SQL Server 2008 表变量参数(表值参数)用法
- T-SQL 变量作用域
- T-SQL查询进阶--变量
- T-SQL查询进阶--变量
- SQL Server: T-SQL变量声明陷阱
- T-SQL概述(常量变量运算符)
- T-SQL之变量导致索引无效/何谓SQLSERVER参数嗅探
- T-sql(SQL Server)
- 二层交换机、三层交换机和路由器的原理及区别
- 在Fedora7下安装USB无线网卡TL-WN321G
- 前端与HTTP通讯
- 定时更新svn
- Windows下实现一个CThread封装类
- SQL 2008 T-SQL(表变量参数)
- java图形界面应用程序
- git remote 创建一个远程仓库,并做merge
- VC最小化程序到托盘
- 提交表单到新的窗口,只显示一个窗口
- 如何将Android 源码中编译出的apk进行自己的签名
- 习题集1.20
- 大数据浪潮催生众多热门职业
- 在C语言中实现动态分配二维数组【转自iTango】