sql存储过程

存储过程——存储过程与视图(三)

那年仲夏 提交于 2020-03-09 05:39:16
数据库视图: 视图是虚表,是从一个或几个基本表(或视图)中导出的表,在系统的 数据字典 中仅存放了视图的定义,不存放视图对应的数据。 在sql中视图是基于sql语句的结果集的可视化的表; 视图包含行和列,就像一个真是表。视图中的字段就是来自一个或多个数据库中的真实的表中的字段。我们可以向视图中添加sql函数,where以及join语句,我们也可以提交数据,就像来自于某一个单表。 数据库的设计和机构不会受到视图中的函数、where和join语句的影响 使用视图的优点 视图运行比select要快 视图可以保护表中的数据,当要保护中的部分数据的时候,可以创建一个视图 视图数据可以来自对多个表的管理,分类、或子查询。然后对视图查询就非常简单。就像对单个表查询一样 视图的基本创建语法: CREATE VIEW ViewProduct AS SELECT a.ID,a.Name,a.Price,a.Address,a.Type FROM [dbo].[product] AS a inner join [dbo].[productType] AS b on a.Type=b.ID 来源: https://www.cnblogs.com/tuqun/p/3652967.html

sql 分页存储过程及其调用

若如初见. 提交于 2020-03-06 05:41:27
GO /****** Object: StoredProcedure [dbo].[proc_Data] Script Date: 12/10/2015 18:17:12 ******/ SET ANSI_NULLS ON GO SET QUOTED_IDENTIFIER ON GO /********************************************************* * 作 用:数据分页(完整SQL分页存储过程(支持多表联接)) * 作 者: * 创建日期: * 使用说明: 1、单表调用方法:EXEC proc_DataPagination @tblName = 'ipa',@fldName = '*',@pageSize =50,@page = 6789,@fldSort = '',@Sort = 1,@strCondition = '',@ID = 'id',@Dist = 0,@pageCount = null,@Counts = NULL 2、多表调用方法:EXEC proc_DataPagination @tblName = 'Info LEFT JOIN InfoType it ON it.typeid=Info.tid',@fldName = 'info.*,it.tname',@pageSize =50,@page = 1806,

sql server 存储过程的简单应用

女生的网名这么多〃 提交于 2020-03-02 00:53:34
CREATE TABLE [dbo].[账号表] ( [Id] INT IDENTITY (1, 1) NOT NULL, [账号] NVARCHAR (50) NOT NULL, [密码] NVARCHAR (50) NOT NULL, [姓名] NVARCHAR (50) NOT NULL, [权限] NVARCHAR (50) NOT NULL, [头像] NVARCHAR (50) NOT NULL, PRIMARY KEY CLUSTERED ([Id] ASC) ); CREATE TABLE [dbo].[操作记录] ( [Id] INT IDENTITY (1, 1) NOT NULL, [时间] DATETIME DEFAULT (getdate()) NOT NULL, [记录类型] NVARCHAR (50) NOT NULL, [操作人] NVARCHAR (50) NOT NULL, [名字] NVARCHAR (50) NOT NULL, [数量] NVARCHAR (50) NOT NULL, [额外信息] NVARCHAR (100) NOT NULL, PRIMARY KEY CLUSTERED ([Id] ASC) ); CREATE PROC [dbo].[修改密码] @账号s NVARCHAR (50), @旧密码s NVARCHAR (50

PL/SQL如何调试Oracle存储过程

懵懂的女人 提交于 2020-02-22 09:56:05
from:http://jingyan.baidu.com/article/3a2f7c2e144d2826aed61167.html 调试过程对找到一个存过的bug或错误是非常重要的,Oracle作为一款强大的商业数据库,其上面的存过少则10几行,多则上千行,免不了bug的存在,存过上千行的话,找bug也很费力,通过调试可以大大减轻这种负担。 工具/原料 PL\SQL Oracle 方法/步骤 首先在PL/SQL的左侧资源栏中展开Procedures项(图中位置1),然后再其上面的搜索框中(图中位置2)输入存过名称的关键词,按回车键搜索要调试的存过,不停的回车,直到找到想要调试的存过。 找到想要调试的存过,左键单击选中该存过(图中位置1),然后右键单击该存过,从弹出菜单中选择“Test”项(图中位置2)。 单击“Test”后,PL\SQL会打开调试界面,图中位置1的按钮就是开始调试的按钮,在调试之前要填写存过的参数,位置2就是填写参数的地方,如果有多个参数,会有多行参数框,按参数名填写相应的参数即可。 填写完参数,单击开始调试按钮后,调试的界面会发生一些变化。图中位置1的变化,说明存过已经处于执行状态,别人不能再编译或者执行。位置2的按钮就是执行按钮,单击这个按钮存过会执行完成或者遇到bug跳出,否则是不会停下来的,调试时不会用这个按钮的。位置3的按钮才是关键——单步执行

ORACLE 定时执行存储过程

纵饮孤独 提交于 2020-02-22 07:29:16
[sql] view plain copy /* 查询: select job,broken,what,interval,t.* from user_jobs t; job job的唯一标识,自动生成的 broken 是否处于运行状态,N;运行;Y:停止 what 存储过程名称 next_date 初次执行时间 interval 执行周期 删除: begin dbms_job.remove(jobno); end; 根据what的内容确定其对应的job,并如此执行删除 执行时间例子: 描述 INTERVAL参数值 每天午夜12点 ''TRUNC(SYSDATE + 1) '' 每天早上8点30分 ''TRUNC(SYSDATE + 1) + (8*60+30)/(24*60) '' 每星期二中午12点 ''NEXT_DAY(TRUNC(SYSDATE ), '' ''TUESDAY '' '' ) + 12/24 '' 每个月第一天的午夜12点 ''TRUNC(LAST_DAY(SYSDATE ) + 1) '' 每个季度最后一天的晚上11点 ''TRUNC(ADD_MONTHS(SYSDATE + 2/24, 3 ), ''Q '' ) -1/24 '' 每星期六和日早上6点10分 ''TRUNC(LEAST(NEXT_DAY(SYSDATE, '' ''SATURDAY "),

VS连接数据库的通用方法(SQL/MySql)

好久不见. 提交于 2020-02-21 18:16:39
在vs里面连接数据库的方法有很多,这里是通用的方法和基本操作 SQL 1 /// <summary> 2 /// 数据访问抽象基础类 3 /// Copyright (C) Maticsoft 4 /// </summary> 5 public abstract class DbHelperSQL 6 { 7 public static int DataType = 1; 8 //数据库连接字符串(web.config来配置),多数据库可使用DbHelperSQLP来实现. 9 public static string connectionString = ConfigurationManager.ConnectionStrings["ReadContext"].ConnectionString; 10 public DbHelperSQL() 11 { 12 if(DataType==2) 13 connectionString = ConfigurationManager.ConnectionStrings["ReadContextMySql"].ConnectionString; 14 } 15 16 #region 公用方法 17 /// <summary> 18 /// 判断是否存在某表的某个字段 19 /// </summary> 20 /// <param name=

SQL存储过程中使用游标对查询结果循环

ε祈祈猫儿з 提交于 2020-02-20 00:58:45
有时候需要在SQL中对查询结果循环,下面是一个使用游标的示例: 1 set ANSI_NULLS ON 2 3 set QUOTED_IDENTIFIER ON 4 5 GO 6 7 ALTER PROCEDURE [ dbo ] . [ GetProductPriceFromYear ] 8 9 @ProductID int , 10 11 @Date Datetime 12 13 AS 14 15 BEGIN 16 17 create table #temp1 18 19 ( 20 21 id int IDENTITY ( 1 , 1 ) NOT NULL primary key , 22 23 AddDate varchar ( 20 ), 24 25 [ datename ] varchar ( 20 ), 26 27 week varchar ( 20 ), 28 29 ProductName varchar ( 20 ), 30 31 ProductID varchar ( 20 ), 32 33 LPrice float ( 20 ), 34 35 HPrice float ( 20 ), 36 37 APrice float ( 20 ), 38 39 WeekLPrice float ( 20 ), 40 41 WeekHPrice float ( 20 ),

万能分页存储过程

不打扰是莪最后的温柔 提交于 2020-02-15 03:45:14
/****** Object: StoredProcedure [dbo].[p_paging] Script Date: 07/14/2018 11:18:31 ******/ SET ANSI_NULLS ON GO SET QUOTED_IDENTIFIER ON GO CREATE proc [dbo].[p_paging] @tableName varchar(8000), --表名、视图名 @indexCol varchar(50) = 'id', --标识列名(如:比如主键、标识,推荐使用索引列) @pageSize int = 10, --页面大小 @pageIndex int = 0, --当前页 @orderCol varchar(100) = 'id desc',--排序 (如:id) @where varchar(max) = '', --条件 @columns varchar(500) = '*' --要显示的列 as declare @sql varchar(max) declare @sql2 varchar(max) declare @where2 varchar(max) if @where <> '' begin select @where2 = ' And ' + @where select @where = ' Where ' +

万能分页存储过程

强颜欢笑 提交于 2020-02-14 19:57:32
CREATE proc [dbo].[p_paging] @tableName varchar(8000), --表名、视图名 @indexCol varchar(50) = 'id', --标识列名(如:比如主键、标识,推荐使用索引列) @pageSize int = 10, --页面大小 @pageIndex int = 1, --当前页 @orderCol varchar(100) = 'id desc',--排序 (如:id) @where varchar(max) = '', --条件 @columns varchar(500) = '*' --要显示的列 as declare @sql varchar(max) declare @sql2 varchar(max) declare @where2 varchar(max) if @where <> '' begin select @where2 = ' And ' + @where select @where = ' Where ' + @where end else select @where2 = '' select @sql = 'Select Top ' + Convert(varchar(10),@pageSize) + ' ' + @columns + ' From ' + @tableName select

通用分页存储过程

Deadly 提交于 2020-02-14 16:30:56
/****** Object: StoredProcedure [dbo].[p_paging] Script Date: 07/14/2018 11:18:31 ******/ SET ANSI_NULLS ON GO SET QUOTED_IDENTIFIER ON GO CREATE proc [dbo].[p_paging] @tableName varchar(8000), --表名、视图名 @indexCol varchar(50) = 'id', --标识列名(如:比如主键、标识,推荐使用索引列) @pageSize int = 10, --页面大小 @pageIndex int = 0, --当前页 @orderCol varchar(100) = 'id desc',--排序 (如:id) @where varchar(max) = '', --条件 @columns varchar(500) = '*' --要显示的列 as declare @sql varchar(max) declare @sql2 varchar(max) declare @where2 varchar(max) if @where <> '' begin select @where2 = ' And ' + @where select @where = ' Where ' +