临时表列的长度

摘要:
临时表列的长度将基于被引用表的相应列的大小,因为它超过了insertinto#tmp2values('123')insertinto#tmp2value('1234')的长度——如果没有引用其他数据表,则临时表的列将根据第一条插入语句的数据长度自动设置,

创建一个临时表的时候.如果不指定列的长度,则临时表列的长度会根据所参照的表的对应列的大小,如

--创建一个表

Create table tmp1 (tmp1 varchar(3))

--创建临时表
select tmp1.tmp1 as tmp2 into #tmp2 from tmp1

--第一条语句成功,但是第二条失败,因为超出了长度

insert into #tmp2 values('123')
insert into #tmp2 values('1234')

--而如果没有参照其他数据表,则临时表的列会根据第一条插入的语句的数据长度而自动设置 ,如

select '123' as tmp into #tmp3

insert into #tmp3 values('123')
insert into #tmp3 values('1234')

--第一条语句成功,但是第二条失败,因为超出了长度

因此,使用临时表的时候 ,要注意临时表的列的长度是多大,避免超出

改变临时表的列的长度:

select tmp1 as tmp2 into #tmp2 from tmp1
--修改临时表列的长度
alter table #tmp2 alter column tmp2 nvarchar(max)


还有一种比较取巧:通过加长第一次插入的值的长度

select tmp1 as tmp2,'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxx' as xx into #tmp2 from tmp1



免责声明:文章转载自《临时表列的长度》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇数据挖掘系列 (1) 关联规则挖掘基本概念与 Aprior 算法THashMD5,THashSHA1,THashBobJenkins,TIdHashMessageDigest5的用法下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

MySQL性能调优思路

1.MySQL性能调优思路 如果一台服务器出现长时间负载过高 /周期性负载过大,或偶尔卡住如何来处理? 是周期性的变化还是偶尔问题?是服务器整体性能的问题, 还是某单条语句的问题? 具体到单条语句, 这条语句是在等待上花的时间,还是查询上花的时间? 1.1. 监测并观察服务器的状态. 观察服务器状态, 一般用如下2个命令 Show status;...

SQL Server:创建索引视图

视图也称为虚拟表,这是因为由视图返回的结果集其一般格式与由列和行组成的表相似,并且,在 SQL 语句中引用视图的方式也与引用表的方式相同。标准视图的结果集不是永久地存储在数据库中。查询每次引用视图时,Microsoft® SQL Server™ 2000 会动态地将生成视图结果集所需的逻辑合并到从基表数据生成完整查询结果集所需的逻辑中。生成视图结果的过程称...

SQL Server 2008禁止修改表结构的解决办法

  近日在使用SQL Server 2008 Management Studio时遇到一个奇怪的问题,之前的数据库是用SQL Server 2005创建的,我将数据库文件复制到另外一台机器上,这台机器上安装的是SQL Server 2008,将数据库文件附加进来没有任何问题,但是当我打开SQL Server 2008的Management Studio,修...

处理百万级以上的数据提高查询速度的方法

处理百万级以上的数据提高查询速度的方法: 1.应尽量避免在 where 子句中使用!=或<>操作符,否则将引擎放弃使用索引而进行全表扫描。 2.对查询进行优化,应尽量避免全表扫描,首先应考虑在 where 及 order by 涉及的列上建立索引。 3.应尽量避免在 where 子句中对字段进行 null 值判断,否则将导致引擎放弃使用索引而...

MS SQL SERVER中的临时表

今天发现原来临时表也有全局的,原文地址:http://www.cnblogs.com/skywind/archive/2008/01/11/1035178.html 对于复杂的查询,我们可以使用嵌套的复杂的SQL语句来实现,但是有些时候,借助于临时表,可以更加方便、高效。 SQL Server 支持临时表。临时表就是那些名称以井号 (#) 开头的表。如果当...

java中数组、list、泛型集合的长度

1 java中的length属性是针对数组说的,比如说你声明了一个数组,想知道这个数组的长度则用到了length这个属性. 2 java中的length()方法是针对字符串String说的,如果想看这个字符串的长度则用到length()这个方法. 3.java中的size()方法是针对泛型集合说的,如果想看这个集合有多少个元素,就调用此方法来查看...