如何实现SQLServer临时表的创建?

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

成都创新互联公司是一家集网站建设,淅川企业网站建设,淅川品牌网站建设,网站定制,淅川网站建设报价,网络营销,网络优化,淅川网站推广为一体的创新建站企业,帮助传统企业提升企业形象加强企业竞争力。可充分满足这一群体相比中小企业更为丰富、高端、多元的互联网需求。同时我们时刻保持专业、时尚、前沿,时刻以成就客户成长自我,坚持不断学习、思考、沉淀、净化自己,让我们为更多的企业打造出实用型网站。

 
 
 
  1. Create Table #Test(a int) 

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

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

将开头‘SELECT’去掉

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

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

 
 
 
  1. Select @From_Pos = CHARINDEX(' from ',@Select_Command_Temp)  
  2. Select @Where_Pos = CHARINDEX(' where ',@Select_Command_Temp)  
  3. Select @Having_Pos = CHARINDEX(' having ',@Select_Command_Temp)  
  4. Select @Groupby_Pos = CHARINDEX(' groupby ',@Select_Command_Temp)  
  5. Select @Orderby_Pos = CHARINDEX(' orderby ',@Select_Command_Temp)  
  6. If @Where_Pos > 0 Select @Temp_Pos = @Where_Pos  
  7. If @Having_Pos > 0 And @Having_Pos < @Temp_Pos Select @Temp_Pos = @Having_Pos  
  8. If @Groupby_Pos > 0 And @Groupby_Pos < @Temp_Pos Select @Temp_Pos = @Groupby_Pos  
  9. If @Orderby_Pos > 0 And @Orderby_Pos < @Temp_Pos Select @Temp_Pos = @Orderby_Pos  
  10.  

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

 
 
 
  1. If @Temp_Pos > 0  
  2. Begin  
  3. Select @Table_List = SUBSTRING(@Select_Command_Temp,@From_Pos + 6 ,@Temp_Pos - @From_Pos - 1)  
  4. End  
  5. Else  
  6. Begin  
  7. Select @Table_List = SUBSTRING(@Select_Command_Temp,@From_Pos + 6 ,Len(@Select_Command_Temp) - @From_Pos - 1)  
  8. End  
  9. Select @Column_Syntax = '' 
  10.  

只列出栏位

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

取逗号位置

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

初次取栏位名称

 
 
 
  1. If @Temp_Pos > 0  
  2. Begin  
  3. Select @Column_Name = Left(@Select_Command_Temp,@Temp_Pos - 1)  
  4. End  
  5. Else  
  6. Begin  
  7. Select @Column_Name = @Select_Command_Temp  
  8. End 

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

 
 
 
  1. If CHARINDEX('.',@Column_Name) > 0  
  2. Begin  
  3. Select @Table_Name = Left(@Column_Name,CHARINDEX('.',@Column_Name) - 1)  
  4. Select @Column_Name = Right(@Column_Name,Len(@Column_Name) - CHARINDEX('.',@Column_Name))  
  5. End   
  6. Else  
  7. Begin  
  8. Select @Table_Name = @Table_List  
  9. End 

栏位出现'*'

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

SQL Server临时表的创建中我们要取栏位个数

 
 
 
  1. Select @Column_Count = Count(*)  
  2. From SysColumns  
  3. Where Id = Object_Id(@Table_name)  
  4. While @Loop_Seq <= @Column_Count  
  5. Begin 

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

 
 
 
  1. Select @Column_Name_Temp = SysColumns.Name,  
  2. @Column_Type_Temp = Lower(SysTypes.Name),  
  3. @Column_Length_Temp = SysColumns.Length,  
  4. @Column_Xprec_Temp = SysColumns.Xprec,  
  5. @Column_Xscale_Temp = SysColumns.Xscale  
  6. From SysColumns,SysTypes  
  7. Where SysColumns.Id = Object_Id(@Table_name) And  
  8. SysColumns.Colid = @Loop_Seq And  
  9. SysColumns.XuserType = SysTypes.XuserType 

形成栏位语法表达式

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

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

新闻标题:如何实现SQLServer临时表的创建?
文章网址:http://www.csdahua.cn/qtweb/news8/271608.html

网站建设、网络推广公司-快上网,是专注品牌与效果的网站制作,网络营销seo公司;服务项目有等

广告

声明:本网站发布的内容(图片、视频和文字)以用户投稿、用户转载内容为主,如果涉及侵权请尽快告知,我们将会在第一时间删除。文章观点不代表本网站立场,如需处理请联系客服。电话:028-86922220;邮箱:631063699@qq.com。内容未经允许不得转载,或转载时需注明来源: 快上网