随笔分类 - SQL SERVER 之 T-SQL基础
SQL SERVER
摘要:--注意事项:SQL Server 不会持续测试达到为自动收缩配置的阈值的数据库。相反,它会寻找可用的数据库并找出第一个配置为自动收缩的数据库。它将检查该数据库,并在需要时收缩该数据库。然后,它会等待几分钟,再检查下一个配置为自动收缩的数据库。换句话说,SQL Server 不会同时检查所有数据库,也不会同时收缩所有数据库。它将以循环方式处理各个数据库,以使负载在时间上错开。也就是说收缩的时间不可控, 所以产品环境一般不会设置,对于开发,测试环境的可以设置.对于系统数据库分发数据库不能设置(master, model, msdb, tempdb和 sys.databases.is_distri
阅读全文
摘要:刚才查数据,因为是varchar(50),而自己传的时候为数值类型导入出来的结果里面有空值就是说select '' select 0000这个两个的数据值是一样的。select * from( select value = '' union all select value = '0000' )a where value = 00000000这个是老大写的简单明了
阅读全文
摘要:/*‘可靠性和性能监视器’ 是sql08用于监视服务器的标准工具,它已经为sql server 更新报计数器。利用这些计数器可以跟踪很多不同的服务器资源和活动。sql server Profiler(事件探查器)是一个分析和优化工具,可以用来追踪服务器事件*/sp_who--报告当前的用户和进程.在执行sp_who时,可将登录名作为参数传递。如果没有指定登录名,在此参数中传递空值,会返回所有的结果--如果用关键词active作为登录名,将会仅看到活动进程,所有正在等待用户下一命令的进行将排除在外。--也可以不使用诸如sa的特定登录名,而是使用一个系统进程的ID数值。禁止用户登陆use mast
阅读全文
摘要:语法及参数如:http://msdn.microsoft.com/zh-cn/library/ms174081%28SQL.90%29.aspx关于日期和时间的函数见:http://msdn.microsoft.com/zh-cn/library/ms186724.aspx不再解释,在这里说的是between ... and 和>、<的比较。早上来就被扔来一个提取数据的需求,让查出去年一年的退货单。不过那人还好知道一下数据量大,让分月查询。他写的是:Time between '2011-01-01' and '2011-01-31' 但是表里面的Ti
阅读全文
摘要:性能优化探讨与分析:1、首先, SQL SERVER(与所有DBMS一样)具有特定的硬件建议。在学习和研究SQL SERVER时,使用任何旧的计算机作为服务器都可以。 但对用于生产的服务器来说,应该坚持遵循这些硬件建议。2、一般来说,关键的生产DBMS应该运行在自己的专用服务器上。3、SQL SERVER是用一系列的默认设置预告配置好的,从这些设置开始通常是很好的。但过一段时间后你可能需要调整内存分配、缓冲区大小等。4、SQL SERVER 一个多用户多线程的DBMS,换言之,它经常同时执行多个任务。如果这些任务中的某一个执行缓慢,则所有请求都会执行缓慢。 你可以使用WINDOWS Syste
阅读全文
摘要:/*-- =================================================Description: 多表查询 ** ---------------------------------------------------Environment: WIN 7 , SQL SERVER 2008 Database: TESTAuthor: CCCreate date: 2012.01.19** ---------------------------------------------------explain: 通过实例查...
阅读全文
摘要:SQL获取所有用户名,数据库名、所有表名、所有字段名及字段类型2009-03-14 10:481.获取所有用户名:SELECT name FROM Sysusers where status='2' and islogin='1'islogin='1'表示帐户islogin='0'表示角色status='2'表示用户帐户status='0'表示糸统帐户2.获取所有数据库名:SELECT Name FROM Master..SysDatabases ORDER BY Name3.获取所有表名SELEC
阅读全文
摘要:Microsoft SQLServer有四种系统数据库:1.master数据库 master数据库记录SQLServer系统的所有系统级别信息。它记录所有的登录帐户和系统配置设置。master数据库是这样一个数据库,它记录所有其它的数据库,其中包括数据库文件的位置。master数据库记录SQLServer的初始化信息,它始终有一个可用的最新master数据库备份。2.tempdb数据库tempdb数据库保存所有的临时表和临时存储过程。它还满足任何其它的临时存储要求,例如存储SQLServer生成的工作表。tempdb数据库是全局资源,所有连接到系统的用户的临时表和存储过程都存储在该数据库中。t
阅读全文
摘要:SELECT ROWSFROM sysindexesWHERE id=OBJECT_ID( 'InboundPlan') AND indid <2--查询库内各表select so.name as 'TableName', so.type,SUM(row_count) as 'TotalRows' from sys.dm_db_partition_stats as ps inner join sys.objects as so on ps.object_id=so.object_id where index_id<=1 and so.
阅读全文
摘要:UPDATE BSET B.InDate=a.InDate,B.EditDate=A.EditDate,B.OperateDate=A.OperateDateFROM (SELECT T.InDate,T.EditDate,T.OperateDate,T.SONumber FROM SOTracking AS T WITH(NOLOCK) WHERE T.operation=130 and T.SONumber in(111,222,333)) AS A INNER JOIN SOTracking AS B ON B.SONumber=a.SONumbe...
阅读全文
摘要:返回结果集分区内行的序列号,每个分区的第一行从 1 开始。 Transact-SQL 语法约定语法ROW_NUMBER ( ) OVER ( [ <partition_by_clause> ] <order_by_clause> )参数<partition_by_clause>将 FROM 子句生成的结果集划入应用了 ROW_NUMBER 函数的分区。若要了解 PARTITION BY 语法,请参阅 OVER 子句 (Transact-SQL)。<order_by_clause>确定将 ROW_NUMBER 值分配给分区中的行的顺序。有关详细信息
阅读全文
摘要:use mydatabaseselect * from table1 where username like'%c%"下面是完成上面功能的另一种写法:use mydatabaseselect * from table1 where charindex('c',username)>0这种方法理论上比上一种方法多了一个判断语句,即>0, 但这个判断过程是最快的, 我想信80%以上的运算都是花在查找字符串及其它的运算上, 所以运用charindex函数也没什么大不了. 用这种方法也有好处, 那就是对%,|等在不能直接用like查找到的字符中可以直接在这c
阅读全文
摘要:declare @alive bit;set @alive = null;if @alive = 1 or @alive != 1 print 'Alive or Dead';else print 'Huh? Neither alive nor dead'; if @alive=@alive PRINT 'It must equal itself, right?'ELSE PRINT 'Not always. null does not equal null';代码挺有意思的,并且把NULL是什么解释的很清楚,写供大家参考一下。
阅读全文
摘要:1、自增长的插入数据对于自增长列有时候需要插入数据,如果是新手(我就是),然后没有接触过自增长的相关知识的话,可能就会出错。像我上次往一张空表插入数据的时候就出现如下的错误:消息 8101,级别 16,状态 1,第 1 行An explicit value for the identity column in table '.dbo.RMAMaster' can only be specified when a column list is used and IDENTITY_INSERT is ON.这个是有提示的,很明显,已经解释说明了需要把 IDENTITY_INSERT
阅读全文
摘要:/*标题:普通行列转换(version 2.0)作者:爱新觉罗.毓华 时间:2008-03-09地点:广东深圳说明:普通行列转换(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------------...
阅读全文
摘要:概念: 临时表:以“#”号开头, 全局临时表:以“##”号开头。 表变量:即变量,用declare定义的变量。 如:Declare @Rec table (ID Int Identity(1,1), Name varchar(40)) 详细概念如下: 表变量 变量都以@或@@为前缀,表变量是变量的一种,另外一种变量被称为标量(可以理解为标准变量,就是标准数据类型的变量,例如整型int或者日期型DateTime)。以@前缀的表变量是本地的,因此只有在当前用户会话中才可以访问,而@@前缀的表变量是全局的,通常都是系统变量,比如说@@error代表最近的一个T-SQ...
阅读全文
摘要:要解决这三个问题,只要完成几个服务器之间建立相互信任关系,建立相互信任语句:--创建链接服务器exec sp_addlinkedserver 'server_lnk','','SQLOLEDB','远程服务器名或ip地址'exec sp_addlinkedsrvlogin ' server _lnk','false',null,'用户名','密码'exec sp_serveroption ' server _lnk','rpc out'
阅读全文
摘要:上周一直在看CTE因为里面都是一个表,或者说看的基本上都是可以拿来直接用SQL自己可以描述的,但是看到的代码的程序自己还是没有看太懂,只是能猜,有不确定性。今天上午闲来测试了一下下:use TESTDBgo/*----------------------------------Server: Sql Server 2008Create date: 2011/11/29Author: CCDescrioption: CTE测试----------------------------------*/create table test_cte( aa int, bb int,...
阅读全文
摘要:索引 可以利用索引快速访问数据库表中的特定信息。索引是对数据库表中一个或多个列(例如,employee 表的姓氏 (lname) 列)的值进行排序的结构。如果想按特定职员的姓来查找他或她,则与在表中搜索所有的行相比,索引有助于更快地获取信息。 索引提供指针以指向存储在表中指定列的数据值,然后根据指定的排序次序排列这些指针。数据库使用索引的方式与使用书的目录很相似:通过搜索索引找到特定的值,然后跟随指针到达包含该值的行。 在数据库关系图中,可以为选定的表创建、编辑或删除索引/键属性页中的每个索引类型。当保存附加在此索引上的表或包含此表的数据库关系图时,索引同时被保存。有关详细信息,请...
阅读全文
摘要:参考自:http://msdn.microsoft.com/zh-cn/library/ms190798(v=SQL.100).aspx主题说明query() 方法(xml 数据类型)说明如何使用 query() 方法查询 XML 实例。value() 方法(xml 数据类型)说明如何使用 value() 方法从 XML 实例中检索 SQL 类型的值。exist() 方法(xml 数据类型)说明如何使用 exist() 方法确定查询是否返回非空结果。modify() 方法(xml 数据类型)说明如何使用 modify() 方法指定 XML Data Modification Language
阅读全文

浙公网安备 33010602011771号