sqlserver2008技术内幕
1. 初学者学sql 2008 看什么书好
入门的书我就不说了。推荐几本相当不错的,等你到了一定阶段看一看会有很大提升:
《sql
server
2005
技术内幕:T-SQL查询》
《sql
server
2005
技术内幕:T-SQL编程》
2. sqlserver2008的数据怎么被封
1 把问题数据库备份后直接删除
停掉SQLSERVER服务,把服务器上出问题的数据库, 假设名称为 ErrorDB的数据库文件及日志文件备份到其他目录,然后直接将其删除,把其数据库文件及日志文件也删除
2 新建同名数据库
启动SQLSERVER服务,新建同名数据库ErrorDB,文件目录和日志和原来一致
3 用备份的数据库文件替换新的数据库文件
停掉SQLSERVER服务,把备份的数据库文件替换新的数据库文件(只替换数据库文件,不替换日志文件)
启动SQLSERVER服务,打开数据库,这时数据库应该是不能访问的
-------------------设置应急模式、单用户模式、检查修复数据,取消单用户模式----------------------
4 将数据库设置为应急状态
3. sqlserver有哪些书
你好,有《Microsoft SQL Server 2008技术内幕:T-SQL语言基础》,Itzik Ben-Gan着,成保栋、张昱译,电子工业出版社出版。
适合零基础的人学习T-SQL。看完以后,还可以看该系列的后两本《Microsoft SQL Server 2008技术内幕:T-SQL查询》和《Inside Microsoft SQL Server 2008 T-SQL Programming》。三本都看完基本就是大侠了。
这三本在网上都有PDF下载,这是我的个人建议,希望可以帮助到你
4. SQLServer2008管理员必备指南的编辑推荐
《SQL Server 2008管理员必备指南》教你全面掌握SQL Server 2008的必备指南!
这本实用指南讲述了SQL Server 2008日常管理的工作。使用快速参考表、指令和列表聚焦核心的支持与维护任务。无论您是学生还是数据库领域的从业人员,都可从《SQL Server 2008管理员必备指南》获得解决问题和完成工作所需的信息。
《SQL Server 2008管理员必备指南》重要主题:
规划、部署和配置SQL Server 2008
管理服务器,管理外围安全、访问及网络配置
导入、导出、转换和复制数据
使用SQL Server Management Studio执行主要的管理任务
操作架构、表、索引和视图
进行自动化维护和实现基于策略的管理
监视服务器活动并优化性能
管理日志传送和数据库镜像
执行备份和还原
《微软技术丛书》包括以下几个子系列
从入门到精通
适舍新手程序员的实用教程
侧重于基础技术和特征
提供范例文件
技术内幕
权威必备的参考大全
包含丰富、实用的范例代码
帮助读者熟练掌握微软技术
高级编程
侧重于高级特性、技术和解决问题
包含丰富适用性强的范倒代码
帮助读者精通微软技术
精通&宝典
着重剖析应用技巧以帮助提高工作效率
主题包括办公应用和开发工具
认证考试教材
完全根据考试要求来阐述每一个知识点
提供可供搜索的Ebook(英文版)和训练题
提供实际场景案例分析和故障诊断实验
SQL Server专家的呕心力作,数据库管理员的实战宝典,全面、深入地剖析SQL Server2008新特性,结构独特,实例丰富,操作性强。
5. sql server 小白应该看哪几本书直到学精通呢分别说出每本书的作用。望回答详细,有
1、sqlserver从入门到精通(其实入门的书很多,大同小异,就是叫你知道基本语法,基本的作用等)
2、sqlserver 企业级平台管理实践(徐海蔚),深入的介绍下整个的sql,强烈推荐
3、sqlserver 技术内幕(2005,2008,感觉05的写的好点,可以看05的,共四本)
6. 谁有Microsoft SQL Server 2008技术内幕文档
http://technet.microsoft.com/zh-cn/sqlserver/default.aspx
7. sqlserver 2008存储过程 加密 为什么加密
触发器的概念及作用 触发器是一种特殊类型的存储过程,它不同于我们前面介绍过的存储过程。触发器主要是通过事件进行触发而被执行的,而存储过程可以通过存储过程名字而被直接调用。当对某一表进行诸如UPDATE、 INSERT、 DELETE 这些操作时,SQL Server 就会自动执行触发器所定义的SQL 语句,从而确保对数据的处理必须符合由这些SQL 语句所定义的规则。 触发器的主要作用就是其能够实现由主键和外键所不能保证的复杂的参照完整性和数据的一致性。除此之外,触发器还有其它许多不同的功能: (1) 强化约束(Enforce restriction) 触发器能够实现比CHECK 语句更为复杂的约束。 (2) 跟踪变化Auditing changes 触发器可以侦测数据库内的操作,从而不允许数据库中未经许可的指定更新和变化。 (3) 级联运行(Cascaded operation)。 触发器可以侦测数据库内的操作,并自动地级联影响整个数据库的各项内容。例如,某个表上的触发器中包含有对另外一个表的数据操作(如删除,更新,插入)而该操作又导致该表上触发器被触发。 (4) 存储过程的调用(Stored procere invocation)。 为了响应数据库更新触,发器可以调用一个或多个存储过程,甚至可以通过外部过程的调用而在DBMS( 数据库管理系统)本身之外进行操作。 由此可见,触发器可以解决高级形式的业务规则或复杂行为限制以及实现定制记录等一些方面的问题。例如,触发器能够找出某一表在数据修改前后状态发生的差异,并根据这种差异执行一定的处理。此外一个表的同一类型(INSERT、 UPDATE、 DELETE)的多个触发器能够对同一种数据操作采取多种不同的处理。 总体而言,触发器性能通常比较低。当运行触发器时,系统处理的大部分时间花费在参照其它表的这一处理上,因为这些表既不在内存中也不在数据库设备上,而删除表和插入表总是位于内存中。可见触发器所参照的其它表的位置决定了操作要花费的时间长短。 触发器的种类 SQL Server 2000 支持两种类型的触发器:AFTER 触发器和INSTEAD OF 触发器。其中AFTER 触发器即为SQL Server 2000 版本以前所介绍的触发器。该类型触发器要求只有执行某一操作(INSERT UPDATE DELETE) 之后,触发器才被触发,且只能在表上定义。可以为针对表的同一操作定义多个触发器。对于AFTER 触发器,可以定义哪一个触发器被最先触发,哪一个被最后触发,通常使用系统过程sp_settriggerorder 来完成此任务。 INSTEAD OF 触发器表示并不执行其所定义的操作(INSERT、 UPDATE、 DELETE),而仅是执行触发器本身。既可在表上定义INSTEAD OF 触发器,也可以在视图上定义INSTEAD OF 触发器,但对同一操作只能定义一个INSTEAD OF 触发器。 请参考
8. SQL server从入门到精通都有哪些经典书籍
1、sqlserver从入门到精通(其实入门的书很多,大同小异,就是叫你知道基本语法,基本的作用等)
2、sqlserver 企业级平台管理实践(徐海蔚),深入的介绍下整个的sql,强烈推荐
3、sqlserver 技术内幕(2005,2008,感觉05的写的好点,可以看05的,共四本)!
9. sql取各个栏目最新的几条信息
--查每个分组前N条记录
--> 生成测试数据: #T
IF OBJECT_ID('tempdb.dbo.#T') IS NOT NULL DROP TABLE #T
CREATE TABLE #T (ID VARCHAR(3),GID INT,Author VARCHAR(29),Title VARCHAR(39),Date DATETIME)
INSERT INTO #T
SELECT '001',1,'邹建','深入浅出SQLServer2005开发管理与应用实例','2008-05-10' UNION ALL
SELECT '002',1,'胡百敬','SQLServer2005性能调校','2008-03-22' UNION ALL
SELECT '003',1,'格罗夫Groff.J.R.','SQL完全手册','2009-07-01' UNION ALL
SELECT '004',1,'KalenDelaney','SQLServer2005技术内幕存储引擎','2008-08-01' UNION ALL
SELECT '005',2,'Alex.Kriegel.Boris.M.Trukhnov','SQL宝典','2007-10-05' UNION ALL
SELECT '006',2,'飞思科技产品研发中心','SQLServer2000高级管理与开发','2007-09-10' UNION ALL
SELECT '007',2,'胡百敬','SQLServer2005数据库开发详解','2008-06-15' UNION ALL
SELECT '008',3,'陈浩奎','SQLServer2000存储过程与XML编程','2005-09-01' UNION ALL
SELECT '009',3,'赵松涛','SQLServer2005系统管理实录','2008-10-01' UNION ALL
SELECT '010',3,'黄占涛','SQL技术手册','2006-01-01'
--SQL查询如下:
--按GID分组,查每个分组中Date最新的前2条记录
--1.字段ID唯一时:
SELECT * FROM #T AS T WHERE ID IN(SELECT TOP 2 ID FROM #T WHERE GID=T.GID ORDER BY Date DESC)
--2.如果ID不唯一时:
SELECT * FROM #T AS T WHERE 2>(SELECT COUNT(*) FROM #T WHERE GID=T.GID AND Date>T.Date)
--SQL Server 2005 使用新方法
--3.使用ROW_NUMBER()进行排位分组
SELECT ID,GID,Author,Title,Date
FROM
(
SELECT rid=ROW_NUMBER() OVER(PARTITION BY GID ORDER BY Date DESC),*
FROM #T
) AS T
WHERE rid<=2
--4.使用APPLY
SELECT DISTINCT b.*
FROM #T AS a
CROSS APPLY
(
SELECT TOP(2) * FROM #T WHERE a.GID=GID ORDER BY Date DESC
) AS b
--结果
/*
ID GID Author Title Date
---- ----------- ----------------------------- --------------------------------------- -----------------------
003 1 格罗夫Groff.J.R. SQL完全手册 2009-07-01 00:00:00.000
004 1 KalenDelaney SQLServer2005技术内幕存储引擎 2008-08-01 00:00:00.000
005 2 Alex.Kriegel.Boris.M.Trukhnov SQL宝典 2007-10-05 00:00:00.000
007 2 胡百敬 SQLServer2005数据库开发详解 2008-06-15 00:00:00.000
009 3 赵松涛 SQLServer2005系统管理实录 2008-10-01 00:00:00.000
010 3 黄占涛 SQL技术手册 2006-01-01 00:00:00.000
(6 行受影响)
*/
--得到每组前几条数据
--假设每组Col1中, Col3不会重复
--建立测试环境
Create Table TEST
(Col1 Varchar(10),
Col2 Varchar(10),
Col3 Int)
--插入数据
Insert TEST Select 'BD1V','Label', 4
Union All Select 'BD1V', 'BATT', 2
Union All Select 'BD1V', 'ODD', 3
Union All Select 'BD1V', 'HDD', 5
Union All Select 'BD1V', 'LCD', 1
Union All Select 'BD1W','HDD', 3
Union All Select 'BD1W','RAM', 8
Union All Select 'BD1W','TP CABLE', 5
Union All Select 'BD1W','LCD', 6
Union All Select 'BD1W','Label', 2
Union All Select 'BL3', 'LCD CABLE', 7
Union All Select 'BL3', 'LABEL', 6
Union All Select 'BL3', 'LCD', 5
Union All Select 'BL3', 'RAM', 1
Union All Select 'BL3D', 'Label', 4
GO
--测试
--方法一:
Select Col1, Col2, Col3 From TEST A
Where (Select Count(*) From TEST Where Col1 = A.Col1 And Col3 > A.Col3) < 3
Order By Col1, Col3 Desc
--方法二:
Select Col1, Col2, Col3 From TEST A
Where Exists (Select Count(*) From TEST Where Col1 = A.Col1 And Col3 > A.Col3 Having Count(*) < 3)
Order By Col1, Col3 Desc
--方法三:
Select Col1, Col2, Col3 From TEST A
Where Col3 In (Select TOP 3 Col3 From TEST Where Col1 = A.Col1 Order By Col3 Desc)
Order By Col1, Col3 Desc
GO
--删除测试环境
Drop Table TEST
--结果
/*
Col1 Col2 Col3
BD1V HDD 5
BD1V Label 4
BD1V ODD 3
BD1W RAM 8
BD1W LCD 6
BD1W TP CABLE 5
BL3 LCD CABLE 7
BL3 LABEL 6
BL3 LCD 5
BL3D Label 4
*/
10. sqlserver2008为列取别名的问题
这是sql在sqlserver中物理查询顺序的问题,看下图
where字句会在select之前执行,那么自然无法知道select中的列别名A到底是什么东西,它只会检查A到底是不是AL_ReturnApply的列名,如果不是那么就会编译出错,关于物理查询顺序,在sql2005(8)技术内幕的书中都有讲到