存储过程呢,学校里学习的都是简单的。这里是我在工作的时候写的存储过程,贴出来,其中公司相关我都XXX代替了

  (注:这个例子可以算是动态SQL的例子了,写死的是静态SQL,这个很灵活的传入参数的是动态SQL,静态的一次编译多次调用具有安全性。动态的需要次次编译,强大但有安全隐患)  

USE [XX]
GO
/****** Object: StoredProcedure [dbo].[OneTable] Script Date: 2018/1/12 9:41:21 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
ALTER procedure [dbo].[OneTable] @TableName nvarchar(50)
as
begin
declare @sql nvarchar(1000)
select @sql=isnull(@sql+',','')+quotename(Name) from syscolumns where id=object_id(@TableName) and name not in ('DATE','TIME')
declare @sqlstr varchar(4000)
set @sqlstr='select a.DateTime,b.NodeID,a.SupplyNum,301 as FactoryID from
(
SELECT rtrim(convert(varchar,replace([Date],''/'',''-'')))+'' ''+ ltrim(convert(varchar,[Time])) [DateTime] ,P.SupplyNum,p.Supplier
FROM
(
SELECT top 1 *
FROM '+@TableName+'
)T
UNPIVOT
(
SupplyNum FOR Supplier IN
('+@sql+')
) P) a inner join XXXX.dbo.XXX b on a.Supplier=b.TagName' ------insert单张表的数据到XXX
insert XXXX.dbo.XXX exec(@sqlstr) ------delete
declare @mindatestr varchar(50)
set @mindatestr=CONVERT(VARCHAR(100),getdate()-3,20)
delete from XXXX.[dbo].XXX where DateTime<@mindatestr end

  现在我需要只插入20分钟以内的数据,我顿时慌了,动态SQL无法取里面的时间怎么办~~我这是蠢成猪的表现了~~

经过同事的开导我才恍然大悟,在动态SQL里面加一个时间判断不就好了嘛。。。

and DATEDIFF(MINUTE,a.DateTime,GETDATE())<20

像这样。。。人蠢了。。。拦都拦不住。。。

  2018.8.4日更新

  在做数据同步的时候也可以使用这个存储过程,很好用。有一个问题,你在同步数据的时候,要做一个时间的增量判断。不要整张表整张表的数据插入同步。应该是只同步需要更新的数据。

and DateTime>  dateadd(MINUTE,-1,GETDATE())

例如上面的sql语句,我同步的那个表的数据是一分钟更新一次的,那我就一分钟同步一次。同步的时候只同步上一分钟的数据。这样就保证了你同步的只是最新的数据。

SQL存储过程例子的更多相关文章

  1. sql 存储过程例子和学习demo

    -------------------------------------------------------------------------- ------------------------- ...

  2. sql存储过程几个简单例子

    导读:sql存储是数据库操作过程中比较重要的一个环节,对于一些初学者来说也是比较抽象难理解的,本文我将通过几个实例来解析数据库中的sql存储过程,这样就将抽象的事物形象化,比较容易理解. 例1: cr ...

  3. PL/SQL存储过程编程

    PL/SQL存储过程编程 /**author huangchaobiao *Email:huangchaobiao111@163.com */ PL/SQL存储过程编程(上) 1. Oracle应用编 ...

  4. SQL 存储过程入门(事务)(四)

    SQL 存储过程入门(事务)(四)   本篇我们来讲一下事务处理技术. 为什么要使用事务呢,事务有什么用呢,举个例子. 假设我们现在有个业务,当做成功某件事情的时候要向2张表中插入数据,A表,B表,我 ...

  5. SQL存储过程概念剖析

    一.SQL存储过程的概念,优点及语法 定义:将常用的或很复杂的工作,预先用SQL语句写好并用一个指定的名称存储起来, 那么以后要叫数据库提供与已定义好的存储过程的功能相同的服务时,只需调用execut ...

  6. (转载)delphi 中如何调用sql 存储过程

    delphi 中如何调用sql 存储过程 使用TADOStoredProc组件,可以,给你举个例子好了 with ADOStoredProc1 do begin Close; Parameters.C ...

  7. SQL存储过程和函数

    SQL存储过程: 由来:在具体应用中,一个完整的操作会包含多条SQL语句,在执行过程中需要根据前面SQL语句的执行结果有选择的执行后面的SQL语句.因此,mysql提供了数据库对象存储过程和函数. 定 ...

  8. SQL存储过程分页(通用的拼接SQL语句思路实现)

    多表通用的SQL存储过程分页 案例一: USE [Community] GO /****** Object: StoredProcedure [dbo].[Common_PageList] Scrip ...

  9. SQL存储过程的调用及写法

    调用函数: public class SqlProcess { ; public DataSet ReturnSet = null; public SqlDataAdapter adapter = n ...

随机推荐

  1. TMS320VC5509使用nof flash AM29LV400

    1. 硬件接口如下,其中nor flash的使用方法,写的时候和NAND FLASH是一样的,读的时候和DRAM是一样的 2. 看下擦除指令和编程指令 3. 代码如下 #include <csl ...

  2. Docker GitHub 网站中 Readme.md 以技术者的角度翻译

    Docker 是一个开源的轻量级容器项目,用于让你的应用在它上面打包.集装和运行.Docker 运行的环境既包含未知硬件也包含未知操作系统.这句话的意思是它可以运行在任何地方,小到你的笔记本大到一个大 ...

  3. IE=edge 让浏览器使用最新的渲染模式

    Bootstrap不支持IE的兼容模式.为了让IE浏览器运行最新的渲染模式,建议将此 <meta> 标签加入到你的页面中: <metahttp-equiv="X-UA-Co ...

  4. BugPhobia开发篇章:Beta阶段第VI次Scrum Meeting

    0x01 :Scrum Meeting基本摘要 Beta阶段第六次Scrum Meeting 敏捷开发起始时间 2015/12/18 00:00 A.M. 敏捷开发终止时间 2015/12/18 23 ...

  5. BugPhobia开发篇章:Beta阶段第I次Scrum Meeting

    0x01 :Scrum Meeting基本摘要 Beta阶段第一次Scrum Meeting 敏捷开发起始时间 2015/12/10 00:00 A.M. 敏捷开发终止时间 2015/12/12 23 ...

  6. Daily Scrum NO.4

    工作概况 符美潇(PM) 昨日完成的工作 1.Daily Scrum.日常会议及日常工作的分配和查收. 2.解决并录入了一个严重的过滤器BUG,该BUG会导致获取子链接的严重异常. 3.在TFS上进行 ...

  7. python获取命令行参数的方法(汇总)

    介绍python获取命令行参数的方法:getopt模和argparse模块. python版本:2.7 一.getopt模块 主要用到了模块中的函数: options, args = getopt.g ...

  8. python matploblib学习笔记

    import matplotlib.pyplot as pltimport numpy as np # matplotlib画图注释中文需要设置from matplotlib.font_manager ...

  9. 从零开始学Kotlin-类的继承(6)

    从零开始学Kotlin基础篇系列文章 Kotlin中的超类Any Kotlin 中所有类都继承超类 Any 类 class demo6 //默认继承超类Any class demo6 : Any() ...

  10. Java的4种保留4位小数的方法(转)

    上网查到的4种方法 其实刚学java……谁知道java里面的这么多方法啊……java里面重要的包本来就不少啊 ……跟我学粤语的小徒弟问我的东东…… 写两种方式……直接在main函数里面写的.还有就是利 ...