谈SQL Server 2005中的T
1、varchar(max)、nvarchar(max)和varbinary(max)数据类型最多可以保存2GB的数据,可以取代text、ntext或image数据类型。
CREATE TABLE myTable
(
id INT,
content VARCHAR(MAX)
)
2、XML数据类型
XML数据类型允许用户在SQL Server数据库中保存XML片段或文档。
错误处理 Error Handling
1、新的异常处理结构
2、可以捕获和处理过去会导致批处理终止的错误。前提是这些错误不会导致连接中断(通常是严重程度为21以上的错误,例如,表或数据库完整性可疑、硬件错误等等。)。
3、TRY/CATCH 构造
SET XACT_ABORT ON
BEGIN TRY
<core logic>
END TRY
BEGIN CATCH TRAN_ABORT
<exception handling logic>
END TRY
@@error may be quired as first statement in CATCH block
4、演示代码
USE demo
GO
--创建工作表
CREATE TABLE student
(
stuid INT NOT NULL PRIMARY KEY,
stuname VARCHAR(50)
)
CREATE TABLE score
(
stuid INT NOT NULL REFERENCES student(stuid),
score INT
)
GO
INSERT INTO student VALUES (101,'zhangsan')
INSERT INTO student VALUES (102,'wangwu')
INSERT INTO student VALUES (103,'lishi')
INSERT INTO student VALUES (104,'maliu')
--调用一个运行时错误
SET XACT_ABORT OFF
BEGIN TRAN
INSERT INTO score VALUES (101,90)
INSERT INTO score VALUES (102,78)
INSERT INTO score VALUES (107, 76) /* 外键错误 */
INSERT INTO score VALUES (103,81)
INSERT INTO score VALUES (104,65)
COMMIT TRAN
GO
SELECT * from student
SELECT * from score
--使用TRY...CATCH构造,并调用一个运行时错误
SET XACT_ABORT OFF
BEGIN TRY
BEGIN TRAN
INSERT INTO score VALUES (101,90)
INSERT INTO score VALUES (102,78)
INSERT INTO score VALUES (107, 76) /* 外键错误 */
INSERT INTO score VALUES (103,81)
INSERT INTO score VALUES (104,65)
COMMIT TRAN
PRINT '事务提交'
END TRY
BEGIN CATCH
ROLLBACK
PRINT '事务回滚'
SELECT ERROR_NUMBER() AS ErrorNumber,
ERROR_SEVERITY() AS ErrorSeverity,
ERROR_STATE() as ErrorState,
ERROR_MESSAGE() as ErrorMessage;
END CATCH
GO
SELECT * from score
GO
快照隔离 Snapshot Isolation
1、写入程序不会阻碍读取程序
相关文档:
感谢提康德罗加的投递
就像当年波士顿的爱国者为反抗英国重税的行动一样,NoSQL的支持者们从各地涌来,分享他们如何推翻缓慢而昂贵的关系数据库的暴政,怎样使用更有效和更便宜的方法来管理数据,他们开始对SQL说不!NoSQL组织上个月在旧金山的行动让人闻到了数据库革命的味道,好像一个现代IT业版的波 ......
CREATE procedure SqlPager_Ex
@sqlstr varchar(8000), --查询字符串
@currentpage int, --第N页
@pagesize int --每页行数,
as
set nocount on
declare @P1 int, --P1是游标的id
@rowcount int
exec sp_cursorope ......
USE master
GO
DECLARE @SQL VARCHAR(MAX);
SET @SQL=''
SELECT @SQL=@SQL+'; KILL '+RTRIM(SPID)
from master..sysprocesses
WHERE dbid=DB_ID('hotel');
EXEC(@SQL);
GO
ALTER DATABASE hotel SET MULTI_USER ......
Server数据库中实现最优最简的整个过程。
算法是计算机科学中一个重要的研究方向,是解决复杂问题的关键。在计算机世界中,算法无处不在。数据库是存储数据和执行大批量计算的场所,在数据库中使用一些简单的SQL命令,进行存储、查询、统计、以解决现实世界中的问题已经是屡见不鲜。随着数据量的大幅度增加和业务规 ......