当前位置:首页 > 系统运维 > 正文内容

如何实现SQL Server临时表的创建?

a8116255316年前 (2010-07-01)系统运维7

以下的文章主要是对SQL Server临时表的创建的实际操作步骤,以及在实际操作中大家要用到的实际应用代码的介绍,我在一个信誉度很好的网站找到一个关于其相关内容今天拿出来供大家分享。

Create Table #Test(a int) 

假如传来的SELECT语句不是以'select'开头,自动修改

If Left(Lower(Ltrim(@Select_Command)),6) <> 'select' Select @Select_Command = 'Select ' + @Select_Command 

将开头‘SELECT’去掉

Select @Select_Command_Temp = Lower(Ltrim(@Select_Command))  If Left(@Select_Command_Temp,6) = 'select' Select @Select_Command_Temp = Right(@Select_Command_Temp,Len(@Select_Command_Temp) - 7) 

取各保留字位置,以便获得表的列表

Select @From_Pos = CHARINDEX(' from ',@Select_Command_Temp)  Select @Where_Pos = CHARINDEX(' where ',@Select_Command_Temp)  Select @Having_Pos = CHARINDEX(' having ',@Select_Command_Temp)  Select @Groupby_Pos = CHARINDEX(' groupby ',@Select_Command_Temp)  Select @Orderby_Pos = CHARINDEX(' orderby ',@Select_Command_Temp)  If @Where_Pos > 0 Select @Temp_Pos = @Where_Pos  If @Having_Pos > 0 And @Having_Pos < @Temp_Pos Select @Temp_Pos = @Having_Pos  If @Groupby_Pos > 0 And @Groupby_Pos < @Temp_Pos Select @Temp_Pos = @Groupby_Pos  If @Orderby_Pos > 0 And @Orderby_Pos < @Temp_Pos Select @Temp_Pos = @Orderby_Pos   

SQL Server临时表的创建中取表列表

If @Temp_Pos > 0  Begin  Select @Table_List = SUBSTRING(@Select_Command_Temp,@From_Pos + 6 ,@Temp_Pos - @From_Pos - 1)  End  Else  Begin  Select @Table_List = SUBSTRING(@Select_Command_Temp,@From_Pos + 6 ,Len(@Select_Command_Temp) - @From_Pos - 1)  End  Select @Column_Syntax = ''  

只列出栏位

Select @Select_Command_Temp = Left(@Select_Command_Temp,@From_Pos - 1)  While Len(@Select_Command_Temp) > 0   Begin 

取逗号位置

Select @Temp_Pos = CHARINDEX(',',@Select_Command_Temp) 

初次取栏位名称

If @Temp_Pos > 0  Begin  Select @Column_Name = Left(@Select_Command_Temp,@Temp_Pos - 1)  End  Else  Begin  Select @Column_Name = @Select_Command_Temp  End 

取表名和栏位名(可能是‘*’)

If CHARINDEX('.',@Column_Name) > 0  Begin  Select @Table_Name = Left(@Column_Name,CHARINDEX('.',@Column_Name) - 1)  Select @Column_Name = Right(@Column_Name,Len(@Column_Name) - CHARINDEX('.',@Column_Name))  End   Else  Begin  Select @Table_Name = @Table_List  End 

栏位出现'*'

If CHARINDEX('*',@Column_Name) > 0  Begin  Select @Column_Name = '' Select @Loop_Seq = 1 

SQL Server临时表的创建中大家要取栏位个数

Select @Column_Count = Count(*)  From SysColumns  Where Id = Object_Id(@Table_name)  While @Loop_Seq <= @Column_Count  Begin 

取栏位名称,栏位类型,长度,精度,小数位

Select @Column_Name_Temp = SysColumns.Name,  @Column_Type_Temp = Lower(SysTypes.Name),  @Column_Length_Temp = SysColumns.Length,  @Column_Xprec_Temp = SysColumns.Xprec,  @Column_Xscale_Temp = SysColumns.Xscale  From SysColumns,SysTypes  Where SysColumns.Id = Object_Id(@Table_name) And  SysColumns.Colid = @Loop_Seq And  SysColumns.XuserType = SysTypes.XuserType 

形成栏位语法表达式

Select @Column_Syntax_Temp = Case When @Column_Type_Temp In ('datetime','image','int') Then @Column_Name_Temp + ' ' + @Column_Type_Temp 

以上的相关内容就是对SQL Server临时表的创建的介绍,望你能有所收获。

扫描二维码推送至手机访问。

版权声明:本文由2345好导航站长资讯发布,如需转载请注明出处。

本文链接:http://2345hao.cn/blog/index.php/post/21418.html

分享给朋友:

“如何实现SQL Server临时表的创建?” 的相关文章

windows 7鼠标停顿怎么办?windows 7 usb鼠标停顿的原因以及解决

windows 7鼠标停顿怎么办?windows 7 usb鼠标停顿的原因以及解决

很多使用Windows 7系统的朋友都想小编反应,假如暂停使用电脑,鼠标会出现停顿现象,这是怎么回事呢 该怎么解决呢 下面就和小编一起去看下Windows 7 usb鼠标停顿的解决方法吧。 由于Windows 7系统中有一项USB选择性暂停造成的。这项设置主要为了节电,当他检测到用户没有对系统进行...

微软今天正式停止对windows 7的主流支持

微软今天正式停止对windows 7的主流支持

北京时间1月13日消息,根据计划,微软将于2015年1月13日正式结束对Windows 7SP1的“主流支持”,而这也标志着“扩展支持”阶段的开始,这个阶段将于2020年1月14日结束。 2013年10月份,微软终止销售独立的Windows 7系统安装包,并要求制造商于2014年10月份停止生...

windows7系统下让所有文件夹都使用同一种视图的方法

windows7系统下让所有文件夹都使用同一种视图的方法

Windows 7系统可以对每个文件夹进行个性化视图设置,可以根据自己的个人喜好和实际需要更改文件或文件夹图标的大小,或者让文件或文件夹以列表、平铺等方式显示。但是,假如你对N个文件夹视图进行了风格各异的个性设置,现在又想让所有文件夹都使用同一种视图怎么办呢 手工一个一个修改,你OUT了,非累得手抽...

微软为windows 7用户重新发布补丁KB2952664 帮助提升Win10升级体

微软为windows 7用户重新发布补丁KB2952664 帮助提升Win10升级体

1月13日消息,微软今天为Windows 7(SP1)用户重新推送了编号为KB2952664的更新补丁,该更新在官方KB知识库中的描述为“Windows 7系统升级兼容性更新”,用于帮助微软改进当前版本系统,提升升级到最新版Win10系统的体验。 这项更新还用于在系统中显示Windows10更新提...

windows 7 xp宋体 成功替换windows 7宋体为XP宋体的方法

windows 7 xp宋体 成功替换windows 7宋体为XP宋体的方法

很多朋友从XP升级迈入了Windows 7的殿堂,却发现,Windows 7确实好用和华丽,可是有一些地方不太适应。今天举出一则例子,是把Windows 7系统下的宋体替换为XP系统下的字体。这个并非无聊,大家去网上搜索下,就知道有多少人想要这么做了。 没办法,每人的需求总是那么的不同,好吧,怀旧...

3个实用的windows 7 DOS操作系统技巧

3个实用的windows 7 DOS操作系统技巧

       1. 快速复制粘贴文字   有时我们需要复制命令提示符窗口中的某些文字内容,但是之前的Windows系统中常规的复制粘贴方法是无效的,而在Windows 7中我们可以通过简单方法来复制文字:首先在任意位置右击鼠标并选择“标记...