一、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
转换后: