SQL Server 2016 (13.x) SP1 與 Azure SQL Database 開始支援 CREATE OR ALTER。
- 僅需 1 句 T-SQL,即可自動判斷是該 CREATE 或 ALTER 此 Stored Procedure。
- 無需額外撰寫判斷式去檢查是否存在於 sys.objects 中。
CREATE OR ALTER 支援以下物件:
- STORED PROCEDURES
- FUNCTIONS
- TRIGGERS
- VIEWS
不受限於 COMPATIBILITY_LEVEL。
CREATE OR ALTER - New enhancements in SQL Server 2016 SP1
01. 僅需 1 句 T-SQL,即可自動判斷是該 CREATE 或 ALTER 此 Stored Procedure。
- CREATE OR ALTER PROC
- 無需額外撰寫判斷式去檢查是否存在於 sys.objects 中。
- SQL Server 2016 (13.x) SP1 支援。
-- figure 01_CREATE OR ALTER PROC
02. 精簡的判斷式,但仍需額外再寫 CREATE PROC。
- DROP PROCEDURE IF EXISTS 。
- 無需增加判斷式去檢查是否存在於 sys.objects 中。
- SQL Server 2016 (13.x) 支援。
-- figure 02_DROP PROCEDURE IF EXISTS
03. 額外撰寫判斷式去檢查是否存在於 sys.objects 中。SQL Server 2016 之前的語法。
-- figure 03_EXISTS_sys_objects
04. 綜合來看:
- SQL Server 2016 (13.x) SP1 支援的 CREATE OR ALTER ,最為簡潔。
-- figure 04_Compare_All
CREATE OR ALTER 支援的物件
CREATE OR ALTER 支援以下物件:
- STORED PROCEDURES
- FUNCTIONS
- TRIGGERS
- VIEWS
01. CREATE OR ALTER PROC
-- figure 11_CREATE OR ALTER PROC
02. CREATE OR ALTER FUNCTION
-- figure 12_CREATE OR ALTER FUNCTION
03. CREATE OR ALTER VIEW
-- figure 13_CREATE OR ALTER VIEW
04. CREATE OR ALTER TRIGGER
-- figure 14_CREATE OR ALTER TRIGGER
Sample Code
20180714_CREATE OR ALTER
https://drive.google.com/drive/folders/0B9PQZW3M2F40OTk3YjI2NTEtNjUxZS00MjNjLWFkYWItMzg4ZDhhMGIwMTZl?usp=sharing
Reference
CREATE OR ALTER – another great language enhancement in SQL Server 2016 SP1
https://blogs.msdn.microsoft.com/sqlserverstorageengine/2016/11/17/create-or-alter-another-great-language-enhancement-in-sql-server-2016-sp1/
Update introduces CREATE OR ALTER Transact-SQL statement in SQL Server 2016
https://support.microsoft.com/en-us/help/3190548/update-introduces-create-or-alter-transact-sql-statement-in-sql-server
沒有留言:
張貼留言