随笔分类 -  SQLServer

摘要:本文来自CSDN博客,转载请标明出处:http://blog.csdn.net/Rulition/archive/2009/10/17/4688982.aspx/*THIS4.0 数据库备份脚本[作者] Rulition QQ:7355157 2010年5月21日15:35:13 完成 2010年5月24日11:35:13 细节修改 2010年5月25日11:31:13 增加[完整备份]前的一致性检查 2010年5月27日10:31:13 检查差异备份的大小,避免过大文件影响差异备份. 2010年5月28日11:14:15 补备份时查看最近是否已做过完全备份.[版本] v1.5[环境] SQL 阅读全文
posted @ 2014-02-13 15:51 zhangchun 阅读(6031) 评论(0) 推荐(0) 编辑
摘要:我们日常使用SQL Server数据库时,经常遇到需要在实例Instance01中跨实例访问Instance02中的数据。例如在做数据迁移时,如下语句:insert into Instance01.DB01.dbo.Table01 select * from Instance02.DB01.dbo.Table01普通情况下,这样做是不允许的,因为SQL Server默认不可以跨实例访问数据。解决方案是使用存储过程sp_addlinkedserver进行实例注册。sp_addlinkedserver在MSDN中的定义为:sp_addlinkedserver [ @server= ] 's 阅读全文
posted @ 2013-11-27 14:31 zhangchun 阅读(21210) 评论(0) 推荐(2) 编辑
摘要:Transact-SQL中的存储过程,非常类似于Java语言中的方法,它可以重复调用。当存储过程执行一次后,可以将语句缓存中,这样下次执行的时候直接使用缓存中的语句。这样就可以提高存储过程的性能。Ø 存储过程的概念 存储过程Procedure是一组为了完成特定功能的SQL语句集合,经编译后存储在数据库中,用户通过指定存储过程的名称并给出参数来执行。 存储过程中可以包含逻辑控制语句和数据操纵语句,它可以接受参数、输出参数、返回单个或多个结果集以及返回值。 由于存储过程在创建时即在数据库服务器上进行了编译并存储在数据库中,所以存储过程运行要比单个的SQL语句块要快。同时由于在调用时只需用 阅读全文
posted @ 2013-09-22 15:13 zhangchun 阅读(402) 评论(0) 推荐(1) 编辑
摘要:网上的SQL优化的文章实在是很多,说实在的,我也曾经到处找这样的文章,什么不要使用IN了,什么OR了,什么AND了,很多很多,还有很多人拿出仅几S甚至几MS的时间差的例子来证明着什么(有点可笑),让许多人不知道其是对还是错。而SQL优化又是每个要与数据库打交道的程序员的必修课,所以写了此文,与朋友们共勉。谈到优化就必然要涉及索引,就像要讲锁必然要说事务一样,所以你需要了解一下索引,仅仅是索引,就能讲半天了,所以索引我就不说了(打很多字是很累的,况且我也知之甚少),可以去参考相关的文章,这个网上资料比较多了。今天来探索下MSSQL的执行计划,来让大家知道如何查看MSSQL的优化机制,以此来优化S 阅读全文
posted @ 2013-09-15 19:13 zhangchun 阅读(774) 评论(0) 推荐(0) 编辑
摘要:转:http://blog.csdn.net/andylaudotnet/article/details/1763573 阅读全文
posted @ 2013-08-13 11:58 zhangchun 阅读(165) 评论(0) 推荐(0) 编辑
摘要:create proc proc_searchuser( @username varchar(12), @page int=1, @pagesize int=3, @totalcount int output )asdeclare @totalsql nvarchar(512)declare @sql varchar(4000)if(ISNULL(@username,'')'')begin set @totalsql='select @totalcount=COUNT(*) from users where username like '' 阅读全文
posted @ 2013-08-06 22:32 zhangchun 阅读(326) 评论(0) 推荐(0) 编辑
摘要: 阅读全文
posted @ 2013-08-06 09:56 zhangchun 阅读(145) 评论(0) 推荐(0) 编辑
摘要:------------------------------------------------------------------------------------ Author : htl258(Tony)-- Date : 2010-06-25 22:23:18-- Version: Microsoft SQL Server 2008 (RTM) - 10.0.1600.22 (Intel X86)-- Jul 9 2008 14:43:34-- Copyright (c) 1988-2008 Microsoft Corporation-- Developer Edition on W 阅读全文
posted @ 2013-08-02 10:17 zhangchun 阅读(549) 评论(0) 推荐(0) 编辑
摘要:锁的概述 一.为什么要引入锁 多个用户同时对数据库的并发操作时会带来以下数据不一致的问题: 丢失更新 A,B两个用户读同一数据并进行修改,其中一个用户的修改结果破坏了另一个修改的结果,比如订票系统 脏读 A用户修改了数据,随后B用户又读出该数据,但A用户因为某些原因取消了对数据的修改,数据恢复原值,此时B得到的数据就与数据库内的数据产生了不一致 不可重复读 A用户读取数据,随后B用户读出该数据并修改,此时A用户再读取数据时发现前后两次的值不一致 并发控制的主要方法是封锁,锁就是在一段时间内禁止用户做某些操作以避免产生数据不一致 二锁的分类 锁的类别有两种分法: 1.从数... 阅读全文
posted @ 2013-08-01 16:29 zhangchun 阅读(1240) 评论(0) 推荐(0) 编辑
摘要:Sql Server 中一个非常强大的日期格式化函数: 获得当前系统时间,GETDATE(): 2008年01月08日 星期二 14:59 Select CONVERT(varchar(100), GETDATE(), 0): 05 16 2008 10:57AM Select CONVERT(varchar(100), GETDATE(), 1): 05/16/08 Select CONVERT(varchar(100), GETDATE(), 2): 08.05.16 Select CONVERT(varchar(100), GETDATE(), 3): 16/05/08 Select C 阅读全文
posted @ 2013-08-01 15:33 zhangchun 阅读(1032) 评论(0) 推荐(0) 编辑
摘要:left join(左联接) 返回包括左表中的所有记录和右表中联结字段相等的记录 right join(右联接) 返回包括右表中的所有记录和左表中联结字段相等的记录inner join(等值连接) 只返回两个表中联结字段相等的行举例如下: --------------------------------------------表A记录如下:aID aNum1 a200501112 a200501123 a200501134 a200501145 a20050115表B记录如下:bID bName1 20060324012 ... 阅读全文
posted @ 2013-08-01 13:40 zhangchun 阅读(206) 评论(0) 推荐(0) 编辑
摘要:范式:英文名称是 Normal Form,它是英国人 E.F.Codd(关系数据库的老祖宗)在上个世纪70年代提出关系数据库模型后总结出来的,范式是关系数据库理论的基础,也是我们在设计数据库结构过程中所要遵循的规则和指导方法。目前有迹可寻的共有8种范式,依次是:1NF,2NF,3NF,BCNF,4NF,5NF,DKNF,6NF。通常所用到的只是前三个范式,即:第一范式(1NF),第二范式(2NF),第三范式(3NF)。下面就简单介绍下这三个范式。 ◆ 第一范式(1NF):强调的是列的原子性,即列不能够再分成其他几列。 考虑这样一个表:【联系人】(姓名,性别,电话) 如果在实际场景中,一个联系人 阅读全文
posted @ 2013-08-01 11:12 zhangchun 阅读(991) 评论(0) 推荐(0) 编辑
摘要:--------创建内链表值函数(即:单语句)ALTER function [dbo].[getUserByUserName]( @username varchar(20))returns table --固定写法asreturn( --这里只能是一条查询语句 --select * from t_money where username=@username select C.userid,C.username,(C.addmoney+C.money)as addmoney from (select a.userid,a.username,a.[money],b.addmoney fr... 阅读全文
posted @ 2013-05-05 20:29 zhangchun 阅读(149) 评论(0) 推荐(0) 编辑
摘要:表一:表二:将表一里的金额分别加给表二对应的userid--关键代码create proc proc_cursorasdeclare @userid varchar(20),@addmoney money--声明游标declare myCursor cursor for select userid,addmoney from t_addmoney--打开游标open myCursor--将查询出来的第一行数据赋给变量fetch next from myCursor into @userid,@addmoney--判断是否发生错误(0表示没有错误)while(@@FETCH_STATUS=0)b 阅读全文
posted @ 2013-05-05 19:42 zhangchun 阅读(218) 评论(0) 推荐(0) 编辑
摘要:--创建视图create view v_tmoneyasselect userid,username from t_moneygoselect * from v_tmoney--创建索引原则:--1该列用于平凡搜索--2该列用于排序--请不要对下面的列创建索引--1列中仅包含几个不同的值--2表中仅包含几行,为小型表创建索引不太划算--创建聚集索引,一个表中只能创建一个聚集索引.默认创建非聚集索引create CLUSTERED index index_usernameon t_money (username)with fillfactor=60go--调用select * from t_mo 阅读全文
posted @ 2013-05-05 19:07 zhangchun 阅读(371) 评论(0) 推荐(0) 编辑
摘要:--创建交易详细表 use MoneyManager if(exists(select * from sysobjects where name='transinfo')) drop table transinfo create table transinfo ( id varchar(20) primary key not null, transdate date, tarnstype nvarchar(2), transmoney money, remark nvarchar(256) ) go --给表transinfo创建插入触发器,给交易表插入一条... 阅读全文
posted @ 2013-05-05 17:47 zhangchun 阅读(239) 评论(0) 推荐(0) 编辑
摘要:1 declare @startpos int=1 --开始位置 2 declare @nextpos int --下一位置 3 declare @spliter char=',' --分割符 4 declare @str varchar(128)='111,222,333,444,555,666,777' --字符串 5 declare @returnvalue varchar(3) --截取的字符串 6 7 while(@startpos<=LEN(@str)) 8 begin 9 select @nextpos=CHARINDEX(@spliter, 阅读全文
posted @ 2013-04-24 10:59 zhangchun 阅读(3446) 评论(0) 推荐(0) 编辑
摘要:地址:http://www.cnblogs.com/xiongnanbin/archive/2012/08/01/2618180.html 阅读全文
posted @ 2012-08-01 15:31 zhangchun 阅读(404) 评论(0) 推荐(0) 编辑
摘要:http://www.cnblogs.com/AK2012/archive/2012/06/19/2012-0619.html 阅读全文
posted @ 2012-06-22 21:30 zhangchun 阅读(150) 评论(0) 推荐(0) 编辑
摘要:完成下面的方法,要求返回一个验证码,并且不能同时存在容易混淆的0和Q。每个字母取得的概率要相同。 他先给出了一部分代码://生成一个随机验证码并且0和O不能同时出现 public string CreateCode(int count) { //验证码字符串 string strcode = "0,1,2,3,4,5,6,7,8,9,A,B,C,D,E,F,G,H,I,J,K,L,M,N,O,P,Q,R,S,T,U,V,W,X,Y,Z"; string[] codes = strcode.Split(','); //验证码为空 string validate 阅读全文
posted @ 2012-06-18 22:40 zhangchun 阅读(359) 评论(0) 推荐(0) 编辑