随笔分类 - sqlserver
摘要:1. 生成for2000版本的数据库脚本 2005的manger studio -- 打开"对象资源管理器"(没有的话按F8), 连接到你的实例 -- 右键要转到2000的库 -- 任务 -- 生成脚本 -- 在"脚本向导"的"选择数据库"中, 确定选择的是要转到2000的库 -- 勾选"为所选数据库中的所有对象编写脚本" -- 在接下来的"选择脚本选项"中, 找到"为服务器版本编写脚本"项, 选择"SQL Server 2000" -- 其他选项根据需要
阅读全文
摘要:先假设一张表为 Users (字段包括ID,Name,Age)现在要使用Row_Number 查询分页功能,使用SQL语句如下:select * from (select Row_Number() over ( Order by ID ) as RowId , * from Users) Uwhere U.RowId between 10 and 20(Tip:上面查询语为每页显示10条,当前是第二页)
阅读全文
摘要:直接把下面脚本复制到新建查询中执行即可:declare @db nvarchar(20) set @db='你的数据库名称' dump transaction @db with no_log backup log @db with no_log dbcc shrinkdatabase(@db)Tip:在确定数据库目前运行稳定,不需要查询以前日志的情况下,执行了上述脚本,结果20G的.LDF文件变成了0.9G.数据库运行稳定.
阅读全文
摘要:select sys_username from Hy_Bpcselect (select ltrim(sys_username)+',' from Hy_Bpc for xml path('')) as A执行效果效果如下
阅读全文
摘要:SQL SERVER2012在ORDER BY 子句中加入了新元素offset,允许用户在排序完成的结果集中自定义输出行范围,大大简化了分页SQL的书写方式和效率。以下是与以前的两种分页方式的简单对比use mastergoset nocount ongoset showplan_text ongo--2012的OFFSET分页方式select number from spt_valueswhere type='p'order by number offset 10 rows fetch next 5 rows only;go--2005的ROW_NUMBER分页方式selec
阅读全文
摘要:-- SQLServer: Select TOP N * From TABLE Order By NewID ()-- 开头到N条记录 Select Top N * From 表-- N到M条记录(要有主索引ID) Select Top M - N * From 表WhereID in ( Select Top MID From 表) Order by ID Desc -- 选择10从到15的记录 select top 5 * from ( select top 15 * from table order by id asc ) A order b...
阅读全文
摘要:一天 select * from T_news where datediff(day,addtime,getdate())=0 三天 select * from T_news where datediff(day,addtime,getdate())<= 2 and datediff(day,addtime,getdate())>= 0 一周 select * from T_news WHERE (DATEPART(wk, addtime) = DATEPART(wk, GETDATE())) AND (DATEPART(yy, addtime) = DATEPART(yy, GE
阅读全文
摘要:经典SQL----行列转换 标题:普通行列转换(version 2.0)说明:普通行列转换(version 1.0)仅针对sql server 2000提供静态和动态写法,version 2.0增加sql server 2005的有关写法。问题:假设有张学生成绩表(tb)如下:姓名 课程 分数张三 语文 74张三 数学 83张三 物理 93李四 语文 74李四 数学 84李四 物理 94想变成(得到如下结果): 姓名 语文 数学 物理 ---- ---- ---- ----李四 74 84 94张三 74 83 93-------------------*/create table tb(姓名
阅读全文
摘要:先说一下存储过程的写法[代码]看完之后有什么想法, 是不是很好用啊,你可以把它当成一个共用的过程也可以在前台写好访问的方法,我喜欢在前台写好方法,这样的话,它就和表数据库无关了, 只要我做项目,把这个存储过程在数据库里一运行,在前台用写好的方法,调用就行了, 没有任何分别,和表和数据库都没有关系,更好的是他是在Sql2000的基础上写的,所以,不管是在Sql2000还是Sql05里都是可以的,程序...
阅读全文
摘要:先说分页的存储过程吧,我有一篇文章说了点http://www.cnblogs.com/sufei/archive/2009/08/11/1543530.html有兴趣的话可以过来看一下1.关于查询的过程下面是一个,但是这个呢不用什么条件,主要是做用是用来绑定像DropDownList 这们的控件,还是很方便的。下在是存储过程 [代码]这里是用法先写一个Bll的方法 [代码]下面是应用 [代码]总结...
阅读全文
摘要:1.对查询进行优化,应尽量避免全表扫描,首先应考虑在 where 及 order by 涉及的列上建立索引。2.应尽量避免在 where 子句中对字段进行 null 值判断,否则将导致引擎放弃使用索引而进行全表扫描,如: select id from t where num is null 可以在num上设置默认值0,确保表中num列没有null值,然后这样查询: select id from t...
阅读全文
摘要:sql2000: 一、通用分页存储过程 首先创建一个通用的存储过程ALTER PROCEDURE [dbo].[ProcDataPaging](@tblName nvarchar(200), ----要显示的表或多个表的连接@fieldKey nvarchar(150), ----主表的主键@fieldNameShow nvarchar(500) = '*', ----要显示的字段列表@pageS...
阅读全文
摘要:比较麻烦,把他记录下来。前台UI:实现的类代码: 程序代码///<summary>///多条件组合查询///</summary>///<paramname="suppliercode">供应商代码</param>///<paramname="materialcode">物料代码</param>///<paramname=...
阅读全文
摘要:在之前,我对MSSQL中的内连接和外连接所得出的数据集不是很清楚。这几天重新温习了一下SQL的书本,现在的思路应该是很清楚了,现在把自己的理解发出来给大家温习下。希望和我一样对SQL的连接语句不太理解的朋友能够有所帮助。(发这么菜的教程,各位大大们别笑话偶了,呵:D ) 有两个表A和表B。 表A结构如下: Aid:int;标识种子,主键,自增ID Aname:varchar 数据情况,即用sele...
阅读全文
摘要:1.安装VS2005时选择SQL2005一并安装; 2.到microsoft官方免费下载SQL2005管理工具Microsoft SQL Server Management Studio Express Service Pack 2,下载地址:http://www.microsoft.com/downloads/details.aspx?familyid=6053C6F8-82C8-479C-B2...
阅读全文
摘要:最近在研究行列转换。在2000版本中,一律用case 语句来完成,但是在2005中新增了pivot运算符,它让你能够将行级数据旋转成为列表数据,实现类似Excel数据透视表的功能,而不需要像先前版本的SQLServer一样使用CASE语句。以下是从别人的博客上抄下来的,很有参考价值:Sql代码 /* 标题:普通行列转换(version2.0) 作者:爱新觉罗.毓华(十八年风雨,守得冰山雪莲花开) ...
阅读全文
摘要:SQL触发器实例1SQL触发器实例1定义: 何为触发器?在SQL Server里面也就是对某一个表的一定的操作,触发某种条件,从而执行的一段程序。触发器是一个特殊的存储过程。 常见的触发器有三种:分别应用于Insert , Update , Delete 事件。 我为什么要使用触发器?比如,这么两个表: Create Table Student( --学生表 StudentID int pri...
阅读全文
摘要:1.按姓氏笔画排序:Select * From TableName Order By CustomerName Collate Chinese_PRC_Stroke_ci_as 2.数据库加密:select encrypt('原始密码')select pwdencrypt('原始密码')select pwdcompare('原始密码','加密后密码') = 1--相同;否则不相同 encrypt(...
阅读全文
摘要:个简单的查询循环添加SQL语然希望对大家有得帮助 DECLARE @id int, @i int, @count intSET @i = 1 WHILE @i < 7454BEGINSELECT @id = id FROM Sam_Users WHERE id = @i if(@id!='')INSERT INTO Sam_UserOperate(UserID, Mark, Template...
阅读全文