根据临时表(表Schema和数据)

发布于 2024-11-06 05:20:06 字数 41 浏览 1 评论 0原文

根据临时表(表架构和数据),我如何创建物理表并向其中插入返回的记录?

According to a temporary table (Table Schema and data), how can i create a physical table and insert returned records to it?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

梦纸 2024-11-13 05:20:06
hi,

在下面的示例代码中,我使用 case 条件从临时表中检索列。
在第 2 步中,我们检查是否已从 case 语句中选择了任何列。
在步骤 3 中,我们仅选择从上述案例 stmnt 中检索到的列。
在步骤 4 中,我们使用上面选择的列名称创建物理表,然后插入其中。
最后删除这两个表,

我希望这对您有帮助

步骤1:

  DECLARE @dynsql NVARCHAR(MAX)  
  SELECT @dynsql =    
            CASE WHEN columnname1 >0 THEN ',columnname' ELSE '' END +                       
            CASE WHEN columnname2 >0 THEN ',columnname2' ELSE '' END +           
            .
            .
            CASE WHEN columnnamen >0 THEN ',columnnamen ' ELSE '' END                 
  FROM ##temptble     
  WHERE  condition  =  cond;

步骤2:

  IF(LEN(@dynsql) > 0)     
   BEGIN  

步骤3:

   SET @dynsql = STUFF(@dynsql,1,1,'SELECT machinename, ') + ' FROM ##temptble'       
   EXEC(@dynsql)      
    END       
  decalre f nvarchar(max)

步骤4:

  set @f = STUFF(@dyncreate,1,6,'create table ven_temp( descriptionname nvarchar(111),' )  + '   int )'   
 exec(@f)   
  insert into ven_temp    
   EXEC(@dynsql) 
hi,

in the below sample code , i am retriving columns from the temp table using the case condition..
in the step 2 we are checking for any column has been selected from the case statement..
in the step 3 we are selecting only the columns which have been retrieved from the above case stmnt..
in the step 4 we are creating the physical table with the columns names which have selected above and then inserting into it..
atlast drop both the tables

i hope this would help you

step1:

  DECLARE @dynsql NVARCHAR(MAX)  
  SELECT @dynsql =    
            CASE WHEN columnname1 >0 THEN ',columnname' ELSE '' END +                       
            CASE WHEN columnname2 >0 THEN ',columnname2' ELSE '' END +           
            .
            .
            CASE WHEN columnnamen >0 THEN ',columnnamen ' ELSE '' END                 
  FROM ##temptble     
  WHERE  condition  =  cond;

step 2:

  IF(LEN(@dynsql) > 0)     
   BEGIN  

step 3:

   SET @dynsql = STUFF(@dynsql,1,1,'SELECT machinename, ') + ' FROM ##temptble'       
   EXEC(@dynsql)      
    END       
  decalre f nvarchar(max)

step 4:

  set @f = STUFF(@dyncreate,1,6,'create table ven_temp( descriptionname nvarchar(111),' )  + '   int )'   
 exec(@f)   
  insert into ven_temp    
   EXEC(@dynsql) 
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文