使用游标建立视图的一个实例(涉及多张表)

declare @x varchar(2000)
declare @y varchar(2000)
declare @str varchar(max)
declare @sql varchar(max)
declare @flag int --标记循环次数
set @flag=1
set @str=‘‘--保存建立视图的语句
DECLARE @table_name varchar(2000)
DECLARE cursor2 CURSOR FOR    --定义游标cursor2
SELECT name FROM  (select name  from sysobjects where xtype=‘U‘  and   name not like ‘%copy%‘ and name not like  ‘[A-Z]%‘ and name not like  ‘[a-z]%‘  ) t -- 共84条记录
OPEN cursor2                  --打开游标
FETCH NEXT FROM cursor2 INTO @table_name
WHILE @@FETCH_STATUS=0        --判断是否成功获取数据

        BEGIN

set @sql=‘select   *   from   syscolumns   where   id=object_id(‘‘‘+  @table_name +‘‘‘)   and   name=‘‘is_delete ‘‘‘--单引号需要转义,用两个单引号表示
set @[email protected]+1
exec(@sql)
if @@rowcount=1 --@@rowcount返回受上一语句影响的行数,判断是否有1行受影响
begin
 if @flag<82 --多个条件需要加()
begin
set @x=‘ select name=‘‘‘[email protected]_name+‘‘‘,  zero=(SELECT count(*) from ‘+ @table_name +‘ where is_delete=0),one=(SELECT count(*) from ‘+ @table_name +‘ where is_delete=1),two=(SELECT count(*) from ‘+ @table_name +‘ where is_delete=2),three=(SELECT count(*) from ‘+ @table_name +‘ where is_delete=3) union ‘
set @[email protected]+@x
print @flag
print @str
end

else
begin
print @flag
set @y=‘select name=‘‘‘[email protected]_name+‘‘‘, zero= (SELECT count(*) from ‘+ @table_name +‘  where is_delete=0),one=(SELECT count(*) from ‘+ @table_name +‘ where is_delete=1),two=(SELECT count(*) from ‘+ @table_name +‘ where is_delete=2),three=(SELECT count(*) from ‘+ @table_name +‘ where is_delete=3) ‘
set @str=‘create view tb as ‘[email protected]+@y
print @str
exec (@str)
break
end
end
            FETCH NEXT FROM cursor2 INTO @table_name
        END
CLOSE cursor2                 --关闭游标
DEALLOCATE cursor2

原文地址:https://www.cnblogs.com/lytuser/p/11756009.html

时间: 2024-08-30 17:53:33

使用游标建立视图的一个实例(涉及多张表)的相关文章

pandas对excel遍历读取与填充:涉及多张表的保存、NAN的类型处理、NAN的处理(str类型下)

代码如下: import pandas as pd df1 = pd.read_excel("小学//数学.xlsx", sheet_name="repository", dtype={"涉及题目": str}) df1 = df1.set_index("ID") df2 = pd.read_excel("小学//数学.xlsx", sheet_name="problems") df2

oracle查询一个数据库有几张表

登录sys用户后通过user_tables表查看当前用户下表的张数.sql:conn / as sysdba;sql:select count(*) from user_tables ;解释:必须是登录到系统的超级用户后后,通过上面sql读取出"用户表"中记录的行数(每个表会有一条记录),即为当前数据库下的表张数.

转换一个字段中含有多个另外一张表的id | | 行转列

1.Oracle Function --入参:表 id /* cxcyxm02 :操作表,含有一个存储另一张表(xs0101)多个主键id的字段 ids :操作表的主键 id */ CREATE OR REPLACE FUNCTION cxcyxmcyry(ids VARCHAR2) RETURN VARCHAR2 IS tempcyryxx VARCHAR2(1000); cyryxx VARCHAR2(1000); cxcylength number; i number;BEGIN i :=

Python使用MySQL数据库的方法以及一个实例

使用环境:Windows+python3.4+MySQL5.5+Navicat 一.创建连接 1.准备工作,想要使用Python操作MySQL,首先需要安装MySQL-Python的包,在Python 3.x下,该包已经改名为MySQLClient.可以使用pip方式安装: pip install MySQLClient 或者下载包文件,进行安装也可以. 2.Python使用MySQL的流程: 3.启动MySQL服务器:以管理员身份启动“cmd”,输入命令:’net start mysql‘ P

C++静态变量本身可否是一个实例对象

一般书上总是用int来举例,那个太简单.如果静态变量本身可否是一个实例对象呢?应该是可以,但是这样涉及到它的构造函数以及它内部的静态变量如何初始化两个问题,换而言之,这个静态变量本身应该如何初始化?这个问题和单例模式有些关系,回头查查. 以下是一个不成熟的例子,但是能编译运行通过. #include "stdafx.h" #include <iostream> using namespace std; class AAA { public: static int sss;

ORACLE 从一个实例迁移到另外一个实例实战记录

ORACLE跨schema的数据迁移 测试环境服务器不够,而同事需要新的oracle环境,把生产环境的数据拉一份过来搭建内部的系统跑:这个实例使用频率不高而且需要的资源不是很多,所以准备在原有的负载不高的oracle服务器上,重新开一个新的实例,这样可以节省数据库服务器资源. 1.DBCA建库 使用DBCA在linux上建立第二个oracle实例,具体搭建过程参考:http://blog.csdn.net/mchdba/article/details/51418063 2.从线上导出数据库 因为

Sqlserver Sql Agent Job 只能同时有一个实例运行

Sqlserver Sql Agent中的Job默认情况下只能有一个实例在运行,也就是说假如你的Sql Agent里面有一个正在运行的Job叫"Test Job",如果你现在再去启动一次"Test Job"就会报错,因为Sqlserver规定在一个Sqlserver账号下,Sql Agent不能同时启动相同的Job两次,只有前一次启动执行完成后,才能够再次启动该Job. 那么随之而来的问题是如何用sql语句检测Job是否已经执行完毕了呢?下面有一个语句可以作为参考:

苹果公司的新的编程语言 Swift 高级语言(十一)--初始化类的析构函数的一个实例

一 .实例的初始化          实例的初始化是准备一个类.结构或枚举的实例以便使用的过程. 初始化包含设置一个实例的每个存储属性为一个初始值,以及运行不论什么其他新的实例可以使用之前须要的设置或初始化. 一个类.结构或枚举能定义一个初始化方法来设置它的特性,用来确保它的实例的全部属性都有有效的初始值. 通过调用类.结构或枚举提供的初始化方法来运行实例的初始化过程. 类的实例也能实现一个析构,用来在类的实例释放之前运行不论什么特定的清除过程来释放分配的专有资源. 1 . 初始化方法的定义 初

PHP 2:从一个实例介绍学习方法

原文:PHP 2:从一个实例介绍学习方法 在前面我已经描述了PHP,Apache以及MySQL的安装与配置.下面将介绍一下我如何学习PHP.首先我自己已经有了一些编程经验,就拿我自己而言,已经熟悉C/C++,C#,Java,VB等语言.所以我会以我自己的方式来学习PHP.我会以一个项目来学习.根据这个项目,我应该达到以下的目的: PHP语法. PHP编程 PHP如何架构项目 PHP如何实现项目 我不会拿起一本书从头到尾来学习,而是根据这个项目的源代码以及结构,与我熟悉的语言相比较,对于自己不熟悉