• SQL Server 2012 新特性


    --Concat示例
    Select CONCAT('SQL Server',2012,null,'RTM')
    
    --Format实例
    DECLARE @d DATETIME = GETDATE();
    SELECT FORMAT( @d, 'd', 'en-US' ) AS Result
    SELECT FORMAT( @d, 'd', 'zh-CN' ) AS Result
    
    --Choose实例
    SELECT CHOOSE(0,'CareySon','Jack','Tony','Peter')
    SELECT CHOOSE(2,'CareySon','Jack','Tony','Peter')
    SELECT CHOOSE(3,'CareySon','Jack','Tony','Peter')
    SELECT CHOOSE(5,'CareySon','Jack','Tony','Peter')
    --Choose
    select CHOOSE(ManagerID,'CareySon','Jack','Tony','Peter')
     FROM [AdventureWorks].[HumanResources].[Employee]
    --传统的CASE...WHEN
    SELECT ManagerID=case when ManagerID=1 then 'CareySon'
         when ManagerID=2 then 'Jack'
         when ManagerID=3 then 'Tony'
         when ManagerID=4 then 'Peter'
         else null
         end
    FROM [AdventureWorks].[HumanResources].[Employee]
    
    --IIF示例
    select IIF(1>2,'结果1','结果2')
    
    --DATEFROMPARTS示例
    SELECT DATEFROMPARTS ( 2012, 3, 12 ) AS Result;
    
    --EOMONTH示例
    declare @date datetime
    set @date='2012-3-12'
    SELECT EOMONTH ( @date ) AS '本月最后一天'
    SELECT EOMONTH ( @date, 1 ) AS '下个月最后一天'
    SELECT EOMONTH ( @date, -1 ) AS '上个月最后一天'
    
    --PARSE和Cast示例
    SELECT TRY_PARSE('Monday, 13 December 2010' AS datetime2 USING 'en-US') AS Result
    SELECT Cast('Monday, 13 December 2010' AS datetime2) AS Result
    
    --Convert和Try_Convert示例
    --转换不成功,为NULL
    select TRY_CONVERT(float, 'test')
    --转换不成功报错
    select CONVERT(float, 'test')
    --永远不可能转换成功的,报错
    SELECT TRY_CONVERT(xml, 4) AS Result;
    
    --TRY_PARSE和PARSE
    SELECT TRY_PARSE('错误值' AS datetime2 USING 'en-US') AS Result
    SELECT PARSE('错误值' AS datetime2 USING 'en-US') AS Result
    
    
    --Throw语句尝试
    --1.更简洁优雅的代码
    --2.可以正确的标识出出错的行数,对于大量T-SQL来说,这点可以节省不少时间
    
    BEGIN TRAN
    BEGIN TRY
     select 1/0;
     COMMIT
    END TRY
    BEGIN CATCH
        ROLLBACK;
        --RAISERROR('自定义错误消息',12,1)
        --THROW
        THROW 50001,'自定义错误消息',1;
        --PRINT ERROR_NUMBER+ERROR_SEVERITY()+ERROR_STATE()+ERROR_PROCEDURE()+ERROR_LINE()+ERROR_MESSAGE()
    END CATCH
  • 相关阅读:
    MySQL 一致性读 深入研究
    Operating System Error Codes
    5分钟了解MySQL5.7的Online DDL雷区
    pt-osc原理、限制、及与原生online-ddl比较
    学习笔记:Rick's RoTs -- Rules of Thumb for MySQL
    学习笔记:The Best of MySQL Forum
    学习笔记:Analyze MySQL Performance及慢日志的开启
    MySQL: Building the best INDEX for a given SELECT
    学习笔记:ALTERing a Huge MySQL Table
    Google common_schema 2.2 documentation
  • 原文地址:https://www.cnblogs.com/sunxuchu/p/6008661.html
Copyright © 2020-2023  润新知