表变量和临时表自定义类型的区别
2013-01-03 18:51
155 查看
表变量用自定义类型时类型在当前库有效
临时表用自定义类型时类型在Tempdb库有效
以下测试3个例子:
临时表用自定义类型时类型在Tempdb库有效
以下测试3个例子:
--测试例子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创建自定义类型 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
--测试例子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
--测试例子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) /* 定义表变量成功 创建临时表成功 */
相关文章推荐
- 使用临时表与声明一个表数据类型的变量有什么区别
- sql server 中临时表与表变量的区别
- algo1-3.cpp 变量的引用类型和非引用类型的区别
- SQL Server 表变量与临时表区别
- javascript判断变量类型的自定义函数
- c#自定义类型的转换方式operator,以及implicit(隐式)和explicit (显示)声明的区别
- 66 Java final 修饰基本类型变量和引用类型变量的区别
- final修饰基本类型和引用类型变量的区别
- 临时表和表变量的区别
- Java中的基本类型和引用类型变量的区别
- 变量的引用类型和非引用类型的区别
- 值类型变量和引用类型变量的区别
- SQL Server中临时表与表变量的区别
- SQL Server中临时表与表变量的概念以及区别
- C++中class与struct的区别(struct的类型名同时可以作为变量名)
- SQL Server--[转]SQL Server中临时表与表变量的区别
- 解析C++普通局部变量与指针类型的对象变量的应用区别
- 第二章变量和基本类型(自定义头文件)
- SQL Server中临时表与表变量的区别
- c#自定义类型的转换方式operator,以及implicit(隐式)和explicit (显示)声明的区别