SqlServer2005编程
junmail
实事求是、坦诚稳重、团结自信、务实创新
展开
-
行列互转
--行列互转/******************************************************************************************************************************************************以学生成绩为例子,比较形象易懂整理人:中国风(Roy)日期:2008.06...原创 2008-07-02 11:45:35 · 141 阅读 · 0 评论 -
SQL逻辑查询处理步骤
1、执行笛卡尔乘积(交叉联接)2、应用ON筛选器(联接条件)3、添加外部行(Outer Row)4、应用WHERE筛选器5、分组6、应用CUBE或ROLLUP选项7、应用HAVING筛选器8、处理SELECT列表9、应用DISTINCT字句10、应用ORDER BY字句这一步不同于其它步骤地是,它不返回有效的表,而是返回一个游标。SQL是基于集合理论的。集合...2008-03-14 17:22:08 · 302 阅读 · 0 评论 -
SELECT 与 SET 对变量赋值的区别
SQL Server 中对已经定义的变量赋值的方式用两种,分别是 SET 和 SELECT。对于这两种方式的区别,SQL Server 联机丛书中已经有详细的说明,但很多时候我们并没有注意,其实这两种方式还是有很多差别的。SQL Server推荐使用 SET 而不是 SELECT 对变量进行赋值。当表达式返回一个值并对一个变量进行赋值时,推荐使用 SET 方法。下表列出 SET 与 SELECT ...2008-03-17 15:29:42 · 163 阅读 · 0 评论 -
T-SQL查询学习笔记——快速生成数字辅助表的几种方法示例代码
----------------------------------------------------------------------- Auxiliry Table of Numbers----------------------------------------------------------------------- Listing 4-8: Creating and Popul...2008-03-19 14:17:52 · 126 阅读 · 0 评论 -
T-SQL查询学习笔记——已有范围和缺失范围示例代码
USE SqlTest;GOIF OBJECT_ID('dbo.T1') IS NOT NULL DROP TABLE dbo.T1GOCREATE TABLE dbo.T1(col1 INT NOT NULL PRIMARY KEY);INSERT INTO dbo.T1(col1) VALUES(1);INSERT INTO dbo.T1(col1) VALUES(2);INSERT IN...2008-03-19 15:30:19 · 174 阅读 · 0 评论 -
sql 的随机函数newID()和RAND()
SELECT * FROM Northwind..Orders ORDER BY NEWID() --随机排序 SELECT TOP 10 * FROM Northwind..Orders ORDER BY NEWID() --从Orders表中随机取出10条记录 示例 A.对变量使用 NEWID 函数 以下示例使用 ...2008-03-20 11:05:23 · 566 阅读 · 0 评论 -
Over 字句
功能:确定在应用关联的窗口函数之前,行集的分区和排序。适用范围: 排名窗口函数、聚合窗口函数参数:PARTITION BY 将结果集分为多个分区。窗口函数分别应用于每个分区,并为每个分区重新启动计算。value_expression 指定对相应 FROM 子句生成的行集进行分区所依的列。 只能引用 FROM 子句可用的列。不能引用选择列表中的表达式或别名...2008-04-07 17:34:12 · 109 阅读 · 0 评论 -
T-SQL查询学习笔记——求中值的几种方法
中值有两种定义:1、当组中包含奇数个元素时,我们将直接返回中间的值2、当组中包含偶数个元素时,返回两个中间值的平均值示例:[color=blue]--构造Groups表[/color]IF OBJECT_ID('dbo.Groups') IS NOT NULL DROP TABLE dbo.Groups;GOCREATE TABLE dbo.Group...2008-04-08 11:28:41 · 770 阅读 · 0 评论 -
T-SQL查询学习笔记——分组因子的使用示例
IF OBJECT_ID('Stocks') IS NOT NULL DROP TABLE Stocks;GOCREATE TABLE dbo.Stocks( dt DATETIME NOT NULL PRIMARY KEY, price INT NOT NULL);INSERT INTO dbo.Stocks(dt, price) V...2008-04-08 17:27:05 · 211 阅读 · 0 评论 -
T-SQL查询学习笔记——TOP子句
在select查询或表表达式中,top结合order by子句用于限制按order by顺序优先返回的结果在2000中,只能使用常量制定该限制,而2005中支持在top中使用任意的独立表达式,而不仅仅是常量例子:SELECT TOP(3) OrderID, CustomerID, OrderDateFROM dbo.OrdersORDER BY OrderDate DESC...2008-04-09 13:59:53 · 668 阅读 · 0 评论 -
T-SQL查询学习笔记——使用TOP和APPLY解决常见问题
[color=blue]1、每组中的TOP n问题[/color]CREATE UNIQUE INDEX idx_eid_od_oid_i_cid_rd ON dbo.Orders(EmployeeID, OrderDate, OrderID) INCLUDE(CustomerID, RequiredDate);CREATE UNIQUE INDEX idx_oid...2008-04-09 14:45:10 · 216 阅读 · 0 评论 -
T-SQL查询学习笔记——数据修改
[color=blue]一、插入数据[/color][color=green]包括:select into、insert exec、插入新行、带有output的insert、序列机制[/color][color=green]1、select into[/color]select into 语句不向调用者返回结果集,而是创建一个包含查询结果集的新表。新表的列沿用查询结果集的列名称...2008-04-10 11:45:57 · 183 阅读 · 0 评论 -
Server 2005 中集合操作(UNION、EXCEPT、INTERSECT)
集合操作在两个输入中比较全部行。 Union:返回包含两个输入中所有行的结果集,如果未指定all选项,UNION将从结果集中移除重复行。Except:返回出现在左输入但未出现在右输入的不重复行。Intersect:返回在两个输入中都出现过的不重复行 Order By字句不能用于集合操作的单个查询中,你只能在查询的最后指定Order By子句,但它将被应用于集合操作的结果 在逻辑处理方面...2008-03-14 16:32:01 · 120 阅读 · 0 评论 -
Sql Server 2005 和 Excel 间的数据传输
1、读取excel中的数据:select * from OpenRowSet('microsoft.jet.oledb.4.0','Excel 8.0;HDR=yes;database=d:\test.xls;',[tt$])2、写入excel数据insert into OpenRowSet('microsoft.jet.oledb.4.0','Excel 8.0;hdr=yes;...2008-03-03 17:16:55 · 189 阅读 · 0 评论 -
Sql Server 2005 T-SQL 增强示例
1、MAX数据类型,结合Update.write方法进行更新(If the target LOB is NULL,an update that uses WRITE will fail)CREATE TABLE test( tid INT NOT NULL PRIMARY KEY, tname VARCHAR(MAX) NULL)INSERT INTO test...2008-02-29 17:34:24 · 134 阅读 · 0 评论 -
合并分拆表
--合并分拆表/******************************************************************************************************************************************************合并分拆表数据整理人:中国风(Roy)日期:2008.06.06***...2008-07-02 11:46:35 · 107 阅读 · 0 评论 -
远程连接操作
--远程连接操作 /******************************************************************************************************************************************************Tab表:/*ID 自增列 Name---------...2008-07-02 11:52:25 · 143 阅读 · 0 评论 -
不同服务器数据库之间的数据操作
--创建链接服务器 exec sp_addlinkedserver 'ITSV ', ' ', 'SQLOLEDB ', '远程服务器名或ip地址 ' exec sp_addlinkedsrvlogin 'ITSV ', 'false ',null, '用户名 ', '密码 ' --查询示例 select * from ITSV.数据库名.dbo.表名 --导入示例 sele...2008-07-02 11:56:02 · 139 阅读 · 0 评论 -
SQL操作全集
SQL分类: DDL—数据定义语言(CREATE,ALTER,DROP,DECLARE) DML—数据操纵语言(SELECT,DELETE,UPDATE,INSERT) DCL—数据控制语言(GRANT,REVOKE,COMMIT,ROLLBACK) 首先,简要介绍基础语句: 1、说明:创建数据库 CREATE DATABASE database-name 2、说明:删除数据库 drop dat...2008-07-02 12:01:41 · 125 阅读 · 0 评论 -
五种提高 SQL 性能的方法
有时, 为了让应用程序运行得更快,所做的全部工作就是在这里或那里做一些很小调整。啊,但关键在于确定如何进行调整!迟早您会遇到这种情况:应用程序中的 SQL 查询不能按照您想要的方式进行响应。它要么不返回数据,要么耗费的时间长得出奇。如果它降低了报告或您的企业应用程序的速度,用户必须等待的时间过长,他们就会很不满意。就像您的父母不想听您解释为什么在深更半夜才回来一样,用户也不会听你解释为什么查询耗费...2008-07-02 12:10:58 · 67 阅读 · 0 评论 -
SQL LIKE 通配符随笔
通配符 说明 _ 与任意单字符匹配 % 与包含一个或多个字符的字符串匹配 [ ] 与特定范围(例如,[a-f])或特定集(例如,[abcdef])中的任意单字符匹配。 [^] 与特定范围(例如,[^a-f])或特定集(例如,[^abcdef])之外的任意单字符匹配。 例子:• WHERE FirstName LIKE '_im' 可以找到所有三个字母的、以 im 结尾的名字(...2008-07-04 09:26:06 · 83 阅读 · 0 评论 -
如何升级sql server 2000至2005
从sql server 2000升级到2005有5种方法: l直接升级 l利用detach/attach功能移动sql server 2000的数据库到2005 l通过backup/restore功能来迁移db l通过sql server 2005的database copy wizard来拷贝数据库 l通过dts的export/import工具来迁移数据到sql server 200...2008-01-08 17:12:24 · 371 阅读 · 0 评论 -
sql server 2005 job调度ssis包时出错(我的解决办法)
1、安装补丁sp+sp更新,将数据库升级到3159(如果不升级,把ssis包导入sqlserver后根本不能运行)2、新建作业时,注意包的所有者,如果Agent是以Local System运行的,输入sa为作业所有者,如果Agent是以其它帐户登陆,那就把作业的所有者设为那个其它帐户。...2008-01-16 15:47:32 · 656 阅读 · 0 评论 -
精妙SQL语句收集
SQL语句先前写的时候,很容易把一些特殊的用法忘记,我特此整理了一下SQL语句操作。一、基础1、说明:创建数据库CREATE DATABASE database-name 2、说明:删除数据库drop database dbname3、说明:备份sql server--- 创建 备份数据的 deviceUSE masterEXEC sp_addumpdevice...2008-02-14 14:24:17 · 129 阅读 · 0 评论 -
SQL Server 2005中处理表分区问题
数据库性能调优是每一个优秀SQL Server管理员最终的责任。虽然保证数据的安全和可用性是我们的最高的目标,但是假如数据库应用程序无法满足用户的要求,那么DBA们会因为性能低下的设计和实现而受到指责。SQL Server 2005在数据库性能方面得到了很多提高,尤其是表分区的技术。如果你还没不了解表分区的特征,那么请你花点时间读这篇文章。 表分区的概念不是一个新的概念;只要你当过一段时...原创 2008-08-28 11:01:45 · 102 阅读 · 0 评论 -
SQL Server 2005中的CTE
SQL Server 2005中有一种新的语法叫做通用表表达式,CTE(Common Table Expression)。这种语法的好处就是可以创建出一张临时的表,这张表可以在定义中使用自引用,使得我们处理父-子关系变得前所未有的方便,T-SQL中也有这个功能啦。------------------------------------------------------------...2008-02-28 17:23:37 · 83 阅读 · 0 评论 -
T-SQL查询学习笔记——求下属和祖先的算法
构建试验环境:CREATE TABLE dbo.Employees( empid INT NOT NULL PRIMARY KEY, mgrid INT NULL REFERENCES dbo.Employees, empname VARCHAR(25) NOT NULL, salary MONEY NO...2008-04-10 14:08:02 · 240 阅读 · 0 评论