摘要:
SQL Server 应用程序中的高级SQL注入 摘要: 这份文档是详细讨论SQL注入技术,它适应于比较流行的IIS+ASP+SQLSERVER平台。它讨论了哪些SQL语句能通过各种各样的方法注入到应用程序中,并且记录与攻击相关的数据确认和数据库锁定。 这份文档的预期读者为与数据库通信的WEB程序的开发者和那些扮演审核WEB应用程序的安全专家。 介绍: SQL是一种用于关系数据库的结构... 阅读全文
摘要:
1. 行列转换--普通 假设有张学生成绩表(CJ)如下 Name Subject Result 张三 语文 80 张三 数学 90 张三 物理 85 李四 语文 85 李四 数学 92 李四 物理 82 想变成 姓名 语文 数学 物理 张三 ... 阅读全文
摘要:
利用数据库复制技术 实现数据同步更新 作者:佚名 文章来源:未知 点击数:194 更新时间:2005-12-25 复制的概念 复制是将一组数据从一个数据源拷贝到多个数据源的技术,是将一份数据发布到多个存储站点上的有效方式。使用复制技术,用户可以将一份数据发布到多台服务器上,从而使不同的服务器用户都可以在权限的许可的范围内共享这份数据。复制技术可以确保分布在不同地点... 阅读全文
摘要:
通常,你需要获得当前日期和计算一些其他的日期,例如,你的程序可能需要判断一个月的第一天或者最后一天。你们大部分人大概都知道怎样把日期进行分割(年、月、日等),然后仅仅用分割出来的年、月、日等放在几个函数中计算出自己所需要的日期!在这篇文章里,我将告诉你如何使用DATEADD和DATEDIFF函数来计算出在你的程序中可能你要用到的一些不同日期。 在使用本文中的例子之前,你必须注意以下的问题... 阅读全文
摘要:
Exists的用法 指定一个子查询,检测行的存在。 语法 EXISTS subquery 参数 subquery 是一个受限的 SELECT 语句 (不允许有 COMPUTE 子句和 INTO 关键字)。 结果类型 Boolean 结果值 如果子查询包含行,则返回 TRUE。 例子: 1.比较使用 EXISTS 和 IN 的查询 这个例子比较了两个语义类似的查询。第一个查询使用 E... 阅读全文
摘要:
常见的全局变量如下 @@CONNECTIONS 自服务器上次启动以来,已创建的连接数。 @@CPU_BUSY 自SQL Server启动以来,系统持续运行的毫秒数。 @@CURSOR_ROWS 最近打开的游标中的行数。 @@DATEFIRST SET DATEFIRST参数的当前值,该参数控制一星期的第一天为哪天。 @@ERRO... 阅读全文
摘要:
ROW_NUMBER 函数 [集合] CUME_DIST 函数 [集合] DENSE_RANK 函数 [集合] PERCENT_RANK 函数 [集合] RANK 函数 [集合] 1、ROW_NUMBER 函数 [集合] 功能 对每一行分配一个唯一的编号。 语法 ROW_NUMBER ( ) 示例 下面的示例返回了一个为每一个 Utah 和 New York 州的职员提供唯一行号的结... 阅读全文
摘要:
定义: 触发器是一种特殊的存储过程,在用户试图对指定的表执行指定的数据修改语句时自动执行。Microsoft® SQL Server™ 允许为任何给定的 Insert、Update 或 Delete 语句创建多个触发器。 基本语法:(帮助里的语法太长了) Create Trigger [TriggerName] ON [TableName] FOR [Insert][,Delete][,Up... 阅读全文
摘要:
CREATE PROCEDURE 创建存储过程,存储过程是保存起来的可以接受和返回用户提供的参数的 Transact-SQL 语句的集合。可以创建一个过程供永久使用,或在一个会话中临时使用(局部临时过程),或在所有会话中临时使用(全局临时过程)。也可以创建在 Microsoft SQL Server启动时自动运行的存储过程。 语法 CREATE PROC [ EDURE ] procedure_n... 阅读全文
摘要:
触发器是特殊的存储过程,存储过程需要程序调用,而触发器会自动执行;你所说的函数是自定义函数吧,函数是根据输入产生输出,自定义只不过输入输出的关系由用户来定义。在什么时候用触发器?要求系统根据某些操作自动完成相关任务,比如,根据买掉的产品的输入数量自动扣除该产品的库存量。什么时候用存储过程?存储过程就是程序,它是经过语法检查和编译的SQL语句,所以运行特别快。 存储过程和用户自定义函数具体的区别 ... 阅读全文
摘要:
自定义取出第几个分割字符前的字符串,默认位置(0) 格式:dbo.split(字段名,'分隔字符',取出的第几个字符串) 如果没有分隔的字符,则返回整个字符串。 如果取出的位置字符串的位置超出Index则返回空。 CREATE FUNCTION [dbo].[split] (@str nvarchar(4000),@code varchar(10),@no int ) RETURNS va... 阅读全文
摘要:
T-SQL对字符串的处理能力比较弱,比如我要循环遍历象1,2,3,4,5这样的字符串,如果用数组的话,遍历很简单,但是T-SQL不支持数组,所以处理下来比较麻烦。下边的函数,实现了象数组一样去处理字符串。 一,用临时表作为数组 create function f_split(@c varchar(2000),@split varchar(2)) returns @t ... 阅读全文
摘要:
%TYPE:属性的一种方式是在变量声明中使用。%TYPE是用于取的表或游标中的字段类型, 例如,可以使用它来生命和ARTIST表中字段类型相同的变量,注意可以在表中名和字段之间使用点号(.)。 DEALARE V_UNIT_NAME kwmis_xm_unit_bg.UNIT_NAME%TYPE; V_BGOID kwmis_xm_unit_bg.BGOID%TYPE; 通过这种方式... 阅读全文
摘要:
1:行級觸發器:每一個行改變時就會執行,在creatre trigger 中指定:FOR EACHROW 事件驅動,可以在事件前後執行 在觸發器中可以引用DML語句中涉及的新舊值,舊:是指DML語句之前存在的值,update,delete常引用的值,新:DML創建的數據值。 如果需要能過觸發器在插入行中設置一個列值,應該使用BEFORE INSERT觸發器訪問 “... 阅读全文
摘要:
1.select 列列表 from 表列表名/视图列表名 where 条件. 2.select 列列表 from 表列表名/视图列表名 where 条件 group by (列列表) having 条件 3.select 列列表 from 表列表名/视图列表名 where 条件 group by (列列表) having 条件 order by 列列表 4.select 列列表 from 表... 阅读全文
摘要:
DECLARE @dt datetime SET @dt=GETDATE() DECLARE @number int SET @number=3 --1.指定日期该年的第一天或最后一天 --A. 年的第一天 SELECT CONVERT(char(5),@dt,120)+'1-1' --B. 年的最后一天 SELECT CONVERT(char(5),@dt,120)+'12-31' -... 阅读全文
摘要:
SQL Server中文版的默认的日期字段datetime格式是yyyy-mm-dd Thh:mm:ss.mmm 例如: select getdate() 2004-09-12 11:06:08.177 整理了一下SQL Server里面可能经常会用到的日期格式转换方法: 举例如下: select CONVERT(varchar, getdate(), 120 ) 2004-09-1... 阅读全文
摘要:
1 --从Table 表中取出第 m 条到第 n 条的记录:(Not In 版本) 2 3 SELECT TOP n-m+1 * 4 FROM Table 5 WHERE (id NOT IN (SELECT TOP m-1 id FROM Table )) 6 1 --从Table 表中取出第 m 条到第 n 条的记录:(Not In 版本) 2 3 SELECT TOP n-m+1... 阅读全文
摘要:
一直没有找到一种好的方法来引用有返回值的存储过程的方法,使我在添加数据中走了不少的弯路,最近,在查阅了大量的资料之后,终于在微软的一个实例中找到了一种良好的方法。 首先编写好一有返回值的存储过程 create procedure proc_name @para1 nchar(20), --输入参数 @para2 int = null out --输出参数,供程序使用... 阅读全文
摘要:
declare mmp cursor for select * from #a open mmp /*建立cursor与查询数据的关联*/ declare @a1 varchar(50),@a2 varchar(50),@a3 varchar(50),@a4 varchar(100),@a5 varchar(50) declare @cnt int select @cnt=0 fetc... 阅读全文