zoukankan      html  css  js  c++  java
  • SQLSERVER通过游标查询两个数据表共有字段名组合成的字符串

    --SQLSERVER通过游标查询两个数据表共有字段名组合成的字符串

    --应用场合: 多为类似包含当前订单数据表跟历史订单数据表,当前有效用户数据表跟历史删除用户数据表之间关联查询。很多时候当前表跟历史表的字段设计成一样的,有的则不同,不同的话在联合查询两表数据时候就会用到这个。

    --定义数据表名称
    Declare @TargetTableName1 nvarchar(250)--定义要查询的数据表名称变量1
    Declare @TargetTableName2 nvarchar(250)--定义要查询的数据表名称变量2
    Set @TargetTableName1='数据表名称1' --这里修改成您要查询的数据表名称(A+B)中的A
    Set @TargetTableName2='数据表名称2' --这里修改成您要查询的数据表名称(A+B)中的B

    --定义列总数
    Declare @TotleColumns int
    Select @TotleColumns=count(name) from syscolumns Where ID=OBJECT_ID(@TargetTableName1) and name in (Select name from syscolumns Where ID=OBJECT_ID(@TargetTableName2))
    print '数据表'+@TargetTableName1+'和数据表'+@TargetTableName2+'共有相同字段总数为:'+Convert(nvarchar(20),@TotleColumns)

    --定义所有字段名称字符串
    Declare @ColumnsString nvarchar(4000)--最终结果字符串变量
    set @ColumnsString=''
    Declare @ColumnName nvarchar(255)--游标存储变量


    --通过游标读取两表的共有字段

    --声明游标mycursor
    declare mycursor cursor for select name from syscolumns Where ID=OBJECT_ID(@TargetTableName1) and name in (Select name from syscolumns Where ID=OBJECT_ID(@TargetTableName2)) order by colid
     
    --打开游标
    open mycursor
     
    --从游标里取出数据赋值到我们刚才声明的变量中
    fetch next from mycursor into @ColumnName
     
    --如果游标执行成功 
    while (@@fetch_status=0)
    begin
     
     --显示出我们每次用游标取出的值
     Set @ColumnsString=@ColumnsString+','+@ColumnName

     --用游标去取下一条记录
        fetch next from mycursor into @ColumnName
    end

    --关闭游标
    close mycursor
    --撤销游标
    deallocate mycursor

    --开头包含逗号则去除
    if left(@ColumnsString,1)=',' set @ColumnsString=substring(@ColumnsString,2,len(@ColumnsString)-1)

    print @ColumnsString

  • 相关阅读:
    x240 uefi ubuntu 12.04.4
    配置管理系统和总体变更系统有什么差别与联系
    C#-利用ZPL语言完毕条形码的生成和打印
    Java Web系统经常使用的第三方接口
    C++类型转换
    JAVA实现HTTPserver端
    Java 实现迭代器(Iterator)模式
    tomcat源代码Catalina
    【剑指offer】二叉搜索树转双向链表
    linux下C语言中的flock函数使用方法 .
  • 原文地址:https://www.cnblogs.com/xqf222/p/3306750.html
Copyright © 2011-2022 走看看