随笔分类 -  数据库应用

摘要:语法:ROW_NUMBER() OVER(PARTITION BY COLUMN ORDER BY COLUMN)简单的说row_number()从1开始,为每一条分组记录返回一个数字,这里的ROW_NUMBER() OVER (ORDER BY xlh DESC) 是先把xlh列降序,再为降序以后... 阅读全文
posted @ 2014-06-19 17:57 H辉 阅读(1677) 评论(0) 推荐(0)
摘要:update 表名 set 要置换的字段=repalce(要置换的字段,需要替代的字符,替换后的字符) where 条件 阅读全文
posted @ 2014-06-06 17:07 H辉 阅读(164) 评论(0) 推荐(0)
摘要:--使用sql语句打开访问EXECL文件--SQL Server 阻止了对组件 'Ad Hoc Distributed Queries' 的 STATEMENT'OpenRowset/OpenDatasource' 的访问--使用下列语句授权访问 1 打开 0关闭EXEC sp_configure ... 阅读全文
posted @ 2014-06-05 10:22 H辉 阅读(699) 评论(0) 推荐(0)
摘要:语句1:SELECT TypeID, COUNT(*) AS [count] FROM GoodsInfo GROUP BY TypeID得到结果解析结果:GoodsInfo表有 4条记录, 分别统计每个TypeID 有多少; 例子中说明 TypeID=1 的有2个,TypeID=2 的有1个,TypeID=3 有1个语句2:SELECT COUNT(*) AS [count] FROM ( SELECT TypeID FROM GoodsInfo GROUP BY TypeID ) AS t 得到结果解析结果:GoodsInfo 表中的记录,只有3种不同的TypeID 阅读全文
posted @ 2014-04-03 10:43 H辉 阅读(2266) 评论(0) 推荐(0)
摘要:这是一个部门表,里面存放了部门及其上级部门,但都放在同一张表中,我们假设现在需要用SQL查询出各部门及其上级部门!就如何做,当然,不用自连接也一样,可以如下:我们达到预期目的!在这个查询中使用了一个子查询完成对上级部门名的查询,如果使用自连接,那么结构上感觉会清晰很多是不是也同样完成了功能呢,这里除了使用自连接外,还使用了左连接,因为省电力没有上级部门,他是老大,如果使用内连接,就会把这条记录过滤掉,因为没有和他匹配的上级部门。自连接用的比较多的就是对权形结构的查询! 阅读全文
posted @ 2014-01-09 10:58 H辉 阅读(572) 评论(0) 推荐(0)
摘要:1 ANSI_NULLS 当 SET ANSI_NULLS 为 ON 时,对空值进行等于 (=) 或不等于 () 比较时取值为 FALSE 例如:SELECT * from table WHERE column_name = NULL 和 SELECT * from table WHERE column_name NULL 这个两个语句,不管column_name 中包含空值和非空值,返回的结果行都是 零行 当 SET ANSI_NULLS 为 OFF 时,情况就和上面描述相反了 数据库默认是 设置 SET ANSI_NULLS 为 ON 的2 QUOTED_IDENTIFIER 当 SET. 阅读全文
posted @ 2013-11-19 14:12 H辉 阅读(265) 评论(0) 推荐(0)
摘要:原因是:之前修改过服务器实例名称执行一下语句select @@servernameselect SERVERPROPERTY ('servername')可以看到,两个不同的结果修改实例名称if serverproperty('servername') @@servername begin declare @server sysname set @server = @@servername exec sp_dropserver @server = @server set @server = cast(serverproperty('servername& 阅读全文
posted @ 2013-09-03 10:54 H辉 阅读(280) 评论(0) 推荐(0)
摘要:今天在还原数据库的时候,提示"因为数据库正在使用,所以无法获得对数据库的独占访问权",无论我是重启数据库,还是重启计算机,都不能解决问题,多番尝试后,终于解决了该问题。现将引发该问题的原因与解决方案写出来,有不对的地方欢迎大家提出来。引发原因:是因为我在还原数据库的时候,还有其他的用户正在使用数据库,所以就会出现以上提示。解决办法有三种:第一种:利用游标循环所有正在使用该数据库的进程,并通过kill命令杀死进程。declare@dbnamevarchar(50)set@dbname='数据库名称'declare@sqlvarchar(50)declarecs 阅读全文
posted @ 2013-08-01 12:42 H辉 阅读(936) 评论(0) 推荐(0)
摘要:MSDN上看了一下说是sql server 2005不支持在分布式事务处理中存在指向本地的链接服务器(环回链接服务器)这个是官方的回答个人认为,应该是在事务中,使用了链接服务器访问进行跨库访问引起的比如说 有个名叫 “TGTreasureDBServer” 链接服务器访问,指向 数据库A , 然后,在数据库B 中 建立存储过程数据库B:CREATE PROCEDURE proc_bbeginBEGIN TRANSACTION select * TGTreasureDBServer.dbo.表名 COMMIT TRANSACTIONend程序中调用 存储过程proc_b 时,就会提示 “其他.. 阅读全文
posted @ 2013-07-18 19:56 H辉 阅读(1255) 评论(0) 推荐(0)
摘要:建立表:CREATE TABLE [TestTable] ( [ID] [int] IDENTITY (1, 1) NOT NULL , [FirstName] [nvarchar] (100) COLLATE Chinese_PRC_CI_AS NULL , [LastName] [nvarcha 阅读全文
posted @ 2013-05-13 16:40 H辉 阅读(507) 评论(0) 推荐(0)
摘要:代码Code highlighting produced by Actipro CodeHighlighter (freeware)http://www.CodeHighlighter.com/--> 1 SET QUOTED_IDENTIFIER ONSELECT * FROM "USER" WHERE a='netasp' SET QUOTED_IDENTIFIER ONSELECT * FROM [USER] WHERE a='netasp' SET QUOTED_IDENTIFIER OFFSELECT * FROM [USER 阅读全文
posted @ 2013-05-02 16:21 H辉 阅读(358) 评论(0) 推荐(0)
摘要:查了查SQL Server文档,发现Null值的比较运算,存在两种规则:在SQL2000中Null值的比较运算有两种规则。一种是ANSI SQL(SQL-92)规定的Null值的比较取值结果都为False,既Null=Null取值也是False。另一种不准循ANSI SQL标准,即Null=Null为True。以一张表T的查询为例。表T存在下面的数据:RowId Data--------------1 'test'2 Null3 'test1'按照ANSI SQL标准,下面的两个查询都不返回任何行:Query1: select * from T where Da 阅读全文
posted @ 2013-05-02 14:54 H辉 阅读(1994) 评论(2) 推荐(0)
摘要:sql with as 用法以下内容转自:http://wudataoge.blog.163.com/blog/static/80073886200961652022389/一.WITH AS的含义 WITH AS短语,也叫做子查询部分(subquery factoring),可以让你做很多事情,定义一个SQL片断,该SQL片断会被整个SQL语句所用到。有的时候,是为了让SQL语句的可读性更高些,也有可能是在UNION ALL的不同部分,作为提供数据的部分。 特别对于UNION ALL比较有用。因为UNION ALL的每个部分可能相同,但是如果每个部分都去执行一遍的话,则成本太高,所以可以使. 阅读全文
posted @ 2013-05-02 11:25 H辉 阅读(619) 评论(0) 推荐(0)