数据库技术之TRY CATCH 、行转列实例

来源:互联网 发布:淘宝上的好评怎样删除 编辑:程序博客网 时间:2024/06/06 00:09

一、TRY CATCH

目的:用来捕获异常和处理异常语句。

简单实例:

创建一个新的表t1

CREATE TABLEt1

(

c1intPRIMARYKEY,

C2varchar(50)

)

INSERT INTO t1 VALUES(1,'good');  --插入测试数据

BEGIN TRY

 INSERT INTO t1 VALUES(1,'same')

END TRY

BEGIN CATCH--捕捉到异常后进行处理

 SELECT ERROR_LINE(),ERROR_SEVERITY(),ERROR_MESSAGE()

END CATCH

相关函数说明:

ERROR_NUMBER()  

返回错误号。

ERROR_SEVERITY() 

返回严重性。

ERROR_STATE() 

返回错误状态号。

ERROR_PROCEDURE()  

返回出现错误的存储过程或触发器的名称。

ERROR_LINE() 

返回导致错误的例程中的行号。

ERROR_MESSAGE() 

返回错误消息的完整文本。该文本可包括任何可替换参数所提供的值,如长度、对象名或时间。

如果是在 CATCH 块的作用域之外调用这些函数,则这些函数返回空值。可以从 CATCH 块作用域内的任何位置使用这些函数检索错误消息




二、简单的行转列实例(PIVOT使用)

创建并初始化产品销售表

CREATE TABLEproductSale

(

 IDint,

  Namevarchar(20),

  Quarterint,

  Saleint

)

insertintoproductSalevalues(1,'a',1,1000)

insertintoproductSalevalues(1,'a',2,2000)

insertintoproductSalevalues(1,'a',3,4000)

insertintoproductSalevalues(1,'a',4,5000)

insertintoproductSalevalues(1,'b',1,3000)

insertintoproductSalevalues(1,'b',2,3500)

insertintoproductSalevalues(1,'b',3,4200)

insert into productSale values(1,'b',4,5500)


使用PIVOT行转列

SELECT ID,name,

[1]as"一季度",

[2]as"二季度",

[3]as"三季度",

[4]as"四季度"

FROM

productSale

PIVOT

(

sum(sale)

forQuarterin

([1],[2],[3],[4])

)

as pvt

转换后:




0 0