设为首页 加入收藏

TOP

表变量和临时表自定义类型的区别
2014-11-24 07:22:39 来源: 作者: 【 】 浏览:2
Tags:变量 临时 定义 类型 区别
表变量和临时表自定义类型的区别
表变量用自定义类型时类型在当前库有效
临时表用自定义类型时类型在Tempdb库有效
以下测试3个例子: www.2cto.com
[sql]
--测试例子1:在Test创建自定义类型SSN
use tempdb
go
if object_id('tempdb..#TestTable') IS NOT NULL
DROP TABLE #TestTable;
if exists (select 1 from sys.types WHERE name = 'SSN')
DROP TYPE dbo.SSN;
go
use Test
go
if exists (select 1 from sys.types WHERE name = 'SSN')
DROP TYPE dbo.SSN;
go
--在Test创建自定义类型 www.2cto.com
CREATE TYPE dbo.SSN
FROM CHAR(9) NOT NULL
GO
RAISERROR('定义表变量成功',10,1) WITH NOWAIT;
DECLARE @TestTable TABLE (
RowID INT IDENTITY,
SSN SSN)
go
RAISERROR('创建临时表失败',10,1) WITH NOWAIT;
CREATE TABLE #TestTable (
RowID INT IDENTITY,
SSN SSN)
/*
定义表变量成功
消息 2715,级别 16,状态 7,第 3 行
第 2 个列、参数或变量: 找不到数据类型 SSN。
*/
go
[sql]
--测试例子2:在Tempdb创建自定义类型SSN
use Test
go
if exists (select 1 from sys.types WHERE name = 'SSN')
DROP TYPE dbo.SSN;
go
use tempdb
go
if object_id('tempdb..#TestTable') IS NOT NULL
DROP TABLE #TestTable;
if exists (select 1 from sys.types WHERE name = 'SSN')
DROP TYPE dbo.SSN;
go
--在Tempdb创建自定义类型
CREATE TYPE dbo.SSN
FROM CHAR(9) NOT NULL;
go
use Test
go
RAISERROR('定义表变量失败',10,1) WITH NOWAIT;
DECLARE @TestTable TABLE (
RowID INT IDENTITY,
SSN SSN)
go
RAISERROR('创建临时表成功',10,1) WITH NOWAIT;
CREATE TABLE #TestTable (
RowID INT IDENTITY,
SSN SSN)
/*
消息 2715,级别 16,状态 7,第 3 行
第 2 个列、参数或变量: 找不到数据类型 SSN。
创建临时表成功
*/
go
[sql]
--测试例子3:同时在Tempdb和Test创建自定义类型SSN
use tempdb
go
if object_id('tempdb..#TestTable') IS NOT NULL
DROP TABLE #TestTable;
if exists (select 1 from sys.types WHERE name = 'SSN')
DROP TYPE dbo.SSN;
go
CREATE TYPE dbo.SSN
FROM CHAR(9) NOT NULL;
go
use Test
go
if exists (select 1 from sys.types WHERE name = 'SSN')
DROP TYPE dbo.SSN;
go
CREATE TYPE dbo.SSN
FROM CHAR(9) NOT NULL;
go
RAISERROR('定义表变量成功',10,1) WITH NOWAIT;
DECLARE @TestTable TABLE (
RowID INT IDENTITY,
SSN SSN)
go
RAISERROR('创建临时表成功',10,1) WITH NOWAIT;
CREATE TABLE #TestTable (
RowID INT IDENTITY,
SSN SSN)
/*
定义表变量成功
创建临时表成功
*/
】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
分享到: 
上一篇使用MAXDOP重复利用多处理器启用S.. 下一篇SQL SERVER系列(1)那些我们错过..

评论

帐  号: 密码: (新用户注册)
验 证 码:
表  情:
内  容:

·Java 并发工具类:提 (2025-12-25 20:25:44)
·Java面试技巧:如何 (2025-12-25 20:25:41)
·Java并发编程中的线 (2025-12-25 20:25:38)
·C 语言 - cppreferen (2025-12-25 19:50:27)
·《C 语言入门教程》 (2025-12-25 19:50:23)