SQL 存储过程动态创建视图

CREATE PROCEDURE  CREAR_PF_VIEW 
AS BEGIN
DECLARE @sql VARCHAR(MAX)
SET @sql = ‘CREATE VIEW dbo.V_PF
AS select * from (select distinct XMBH as XMBH  From YDS_SHPB ) X1 ‘
DECLARE @uid VARCHAR(MAX)
DECLARE @sql_ls VARCHAR(MAX)
DECLARE cur CURSOR               --定义一个游标
READ_ONLY
FOR  SELECT SPBLX FROM YDS_SHBPDY--为所获得的数据集指定游标
open cur                         --打开游标
FETCH NEXT FROM cur INTO @uid    --把提取操作的列数据放到局部变量中
WHILE(@@fetch_status=0)          --返回被 FETCH 语句执行的最后游标的状态,而不是任何当前被连接打开的游标的状态。
BEGIN
   SET @sql_ls = ‘ left join (select B.XMBH as ‘+ @uid+‘_BH,A.YJMC as ‘ +  @uid + ‘_YJ,A.JBRMC as ‘ [email protected] +‘_QZ,
           A.JBRQMC as ‘[email protected]+‘_RQ,B.JBRYJ as ‘+ @uid +‘_BT from YDS_SHBPDY as A,YDS_SHPB as B  where A.SPBLX = B.SPBLX  and A.SPBLX =‘‘‘[email protected]+‘‘‘ 
           ) ‘[email protected]+‘ on X1.XMBH = ‘[email protected]+‘.‘[email protected] +‘_BH‘
  SET @sql = @sql + @sql_ls 
--提前下一位信息
FETCH NEXT FROM cur INTO @uid
END
CLOSE cur     --关闭游标
DEALLOCATE cur--删除游标
--PRINT   @sql
IF exists     --判断视图是否存在若存在则删除后创建
(SELECT * FROM dbo.sysobjects WHERE id = object_id(N‘[dbo].[V_PF]‘) and OBJECTPROPERTY(id, N‘IsView‘) = 1)
DROP VIEW [dbo].[V_PF]
EXEC(@sql)
END
GO

来源:http://blog.csdn.net/namespacefeng/article/details/17240119

时间: 2024-08-28 03:53:48

SQL 存储过程动态创建视图的相关文章

Android编程动态创建视图View的方法

在Android开 发中,在Activity中关联视图View是一般使用setContentView方法,该方法一种参数是使用XML资源直接创 建:setContentView (int layoutResID),指定layout中的一个XML的ID即可,这种方法简单.另一个方法是 setContentView(android.view.View),参数是指定一个视图View对象,这种方法可以使用自定义的视图类. 在一些场合中,需要对View进行一些定制处理,比如获取到Canvas进行图像绘制,

存储过程动态创建表,以时间给表命名

存储过程动态创建表,以时间给表命名 create or replace procedure create_table as v_sql varchar2(2000); begin v_sql:='create table ' || upper('tablename')|| replace(to_char(sysdate,'yyyy-mm-dd'),'-','')|| replace(to_char(sysdate,'hh24:mi:ss'),':','')|| '( id number prim

MySql存储过程动态创建表并插入数据

最近做的一个项目,数据库用的是MySql,对于MySql不是很熟练,只是会简单的应用,毕竟简单的sql语句还是相通的,但是随着项目的深入复杂的sql语句开始慢慢多起来,其中一个小难点就是要根据当天的日期动态创建表,并且向其中插入数据. 具体逻辑可以理解为,先去数据库查询有没有当天的记录表,如果没有则创建表,然后执行当天的日志写入. Mysql的可视化工具我们用的是navicat,相对来说还是比较好用,当然没有sqlserver 那么人性化(很多快捷键不支持,操作累赘).下面我就来说一说用navi

SQL Server 动态创建表结构

需求是,在word里面设计好表结构(主要在word中看起来一目了然,方便维护),然后复制sql 里面,希望动态创建出来 存储表结构的表 CREATE TABLE [dbo].[Sys_CreateTable]( [序号] [int] IDENTITY(1,1) NOT NULL, [中文名] [nvarchar](500) NULL, [英文名] [nvarchar](500) NULL, [类型.宽度.精度] [nvarchar](500) NULL, [默认值/描述] [nvarchar](

SQL Server 如何创建视图

1.为什么要使用视图 1.进行多表联合查询时,编写程序时每调用一次需编写一次,不太现实,容易出错: 这时把所需的数据集于视图中,访问视图即可 2.避免直接访问基表 2.视图可以做什么 增.删.改.查 3.实例 //所需数据 //在SQL Sever数据库中创建表 create table tb_stu ( stuNo int primary key, stuName varchar(10) not null, stuSex varchar(2) null, stuAge int not null

ViewContainerRef 动态创建视图

Angular DOM 操作 相关的APIs和类: 查询DOM节点 template variable ref: 模版变量引用,相当于react中的ref ViewChild: 查询DOM,返回单个元素引用 ViewChildren: 返回一个QueryList对象,包含一系列元素 ElementRef: 元素引用 查询的方式获取,比如 @ViewChild('myInput') inputElm: ElementRef 依赖注入的方式,获取宿主元素,比如 constructor(private

SQL Server 动态管理视图(DMVs)

DMV在本地部署的SQL Server中需要VIEW SERVER STATE的权限   和事务有关的DMV sys.dm_tran_active_transactions:返回与您的当前逻辑数据库的事务有关的信息. sys.dm_tran_database_transactions:返回有关用户数据库级事务的信息. sys.dm_tran_locks:返回有关当前处于活动状态的锁管理器资源的信息.向锁管理器发出的已授予锁或正等待授予锁的每个当前活动请求分别对应一行.结果集中的列大体分为两组:资

实战基础技能(25)--------sql存储过程的创建

一:没有参数的存储过程 CREATE PROCEDURE select_all AS BEGIN SELECT * from T_login1 END GO 二:带参数的存储过程 CREATE PROCEDURE select_name @id uniqueidentifier AS BEGIN SELECT * from T_login1 where PSN0001A=@id END GO 三:带通配符参数存储过程 alter proc proc_findStudentByName @name

Oracle_高级功能(7) 数据字典视图和动态性能视图

oracle数据字典 1.概念数据字典是oracle数据库用来存储数据库结构信息的地方.数据字典是用来描述数据库数据的组织方式的,由表和视图组成.数据字典基表是在任何 Oracle 数据库中创建的第一批对象.所有数据库的数据字典表和视图都存储在SYSTEM表空间中.由于当数据库打开时,SYSTEM 表空间始终处于联机状态 ,所以当数据库打开时,数据字典总是可用的.Oracle数据库的SYS用户,拥有数据字典中的所有基表和用户可访问视图.数据字典基表中的数据,对于Oracle 数据库发挥正常功能是