MYSQL编程:谈SQL Server 2005中的T-SQL加强
解决方案提供商应记住DBaaS通常仅仅是解决方案的一部分。客户之所以与他们的解决方案提供商协同工作,不仅是因为他们出售的产品,而且还因为他们所提供的服务。 丰厚的数据范例RicherDataTypes1、varchar(max)、nvarchar(max)和varbinary(max)数据范例最多能够保留2GB的数据,能够代替text、ntext或image数据范例。
CREATETABLEmyTable
(
idINT,
contentVARCHAR(MAX)
)</p> 2、XML数据范例
XML数据范例同意用户在SQLServer数据库中保留XML片断或文档。
毛病处置ErrorHandling
1、新的非常处置布局
2、能够捕捉和处置已往会招致批处置停止的毛病。条件是这些毛病不会招致毗连中止(一般是严峻水平为21以上的毛病,比方,表或数据库完全性可疑、硬件毛病等等。)。
3、TRY/CATCH机关
SETXACT_ABORTON
BEGINTRY
<corelogic>
ENDTRY
BEGINCATCHTRAN_ABORT
<exceptionhandlinglogic>
ENDTRY
@@errormaybequiredasfirststatementinCATCHblock</p> 4、演示代码
USEdemo
GO
--创立事情表
CREATETABLEstudent
(
stuidINTNOTNULLPRIMARYKEY,
stunameVARCHAR(50)
)
CREATETABLEscore
(
stuidINTNOTNULLREFERENCESstudent(stuid),
scoreINT
)
GO
INSERTINTOstudentVALUES(101,zhangsan)
INSERTINTOstudentVALUES(102,wangwu)
INSERTINTOstudentVALUES(103,lishi)
INSERTINTOstudentVALUES(104,maliu)
--挪用一个运转时毛病
SETXACT_ABORTOFF
BEGINTRAN
INSERTINTOscoreVALUES(101,90)
INSERTINTOscoreVALUES(102,78)
INSERTINTOscoreVALUES(107,76)/*外键毛病*/
INSERTINTOscoreVALUES(103,81)
INSERTINTOscoreVALUES(104,65)
COMMITTRAN
GO
SELECT*FROMstudent
SELECT*FROMscore
--利用TRY...CATCH机关,并挪用一个运转时毛病
SETXACT_ABORTOFF
BEGINTRY
BEGINTRAN
INSERTINTOscoreVALUES(101,90)
INSERTINTOscoreVALUES(102,78)
INSERTINTOscoreVALUES(107,76)/*外键毛病*/
INSERTINTOscoreVALUES(103,81)
INSERTINTOscoreVALUES(104,65)
COMMITTRAN
PRINT事件提交
ENDTRY
BEGINCATCH
ROLLBACK
PRINT事件回滚
SELECTERROR_NUMBER()ASErrorNumber,
ERROR_SEVERITY()ASErrorSeverity,
ERROR_STATE()asErrorState,
ERROR_MESSAGE()asErrorMessage;
ENDCATCH
GO
SELECT*FROMscore
GO</p>DBaaS解决方案既可以解决这些问题,又能为客户节约资金。相反作为解决方案提供商,采用DBaaS模式似乎就并不那么有吸引力了,因为与企业内部署软件的解决方案相比,DBaaS意味着更低的利润。 其实可以做一下类比,Oracle等数据库产品老早就支持了java编程,而且提供了java池参数作为用户配置接口。但是现在有哪些系统大批使用了java存储过程?!连Oracle自己的应用都不用为什么?! 一直以来个人感觉SQLServer的优化器要比Oracle的聪明。SQL2005的更是比2k聪明了不少。(有次作试验发现有的语句在200万级时还比50万级的相同语句要快show_text的一些提示没有找到解释。一直在奇怪。) 大家注意一点。如下面的例子: XML字段类型更好的解决了XML数据的操作。XQuery确实不错,但是个人对其没好感。(CSDN的开发者应该是相当的熟了!) 在select语句中可以使用groupby子句将行划分成较小的组,然后,使用聚组函数返回每一个组的汇总信息,另外,可以使用having子句限制返回的结果集。 SP4包括用于以下SQLServer2000组件的程序包:Database组件(下载文件:SQL2000-KB884525-SP4-x86.EXE)更新SQLServer2000的32位Database组件,包括数据库引擎、复制、客户端连接组件及工具。有关其他信息,请参阅ReadmeSql2k32Sp4.htm。AnalysisServices组件(下载文件:SQL2000.AS-KB884525-SP4-x86.EXE)更新SQLServer2000的32位AnalysisServices。 然后最好有实践机会,能够把实践到的和实践结合起来,其实理论思考是个非常困扰和痛苦的事情 SQL语言是学习所有数据库产品的基础,无论你是做数据库管理还是做数据库开发都是这样。不过具体学习的侧重点要看你将来做哪一块,如果是做数据库管理(DBA),侧重点应该放在SQLServer的系统管理上.
页:
[1]