Posts

Showing posts from September, 2018

Warn for DELETE All records

在  SQL Server Management Studio (SSMS) 中執行刪除所有資料時,是不會有任何提醒的!!
例如將 delete * from XX 看成 select * from XX,或者未加篩選條件時,都可以輕易地直接刪除整個資料表的所有資料。
防範類似的悲劇發生,可行做法:

SQL Server 定期備份 當發生誤刪資料時,確保可以進行環原。
異動大量資料前,手動備份一次。

自製警告訊息 SSMS (v17.9) 目前沒有類似提醒的設定,不過可以在 delete trigger 加上類似的檢查,預防不小心刪除整個資料表,若真需要全部刪除前,再手動停用 Trigger,執行刪除後再手動啟Trigger。
建立刪除警告的 Trigger
FOR DELETE AS BEGIN DECLARE @Count int SET @Count = @@ROWCOUNT; IF @Count >= (SELECT SUM(row_count) FROM sys.dm_db_partition_stats WHERE OBJECT_ID = OBJECT_ID('dbo.MyTable_LOG') AND index_id = 1) BEGIN RAISERROR('Cannot delete all rows at once.',16,1) ROLLBACK TRANSACTION RETURN; END END
停用 Trigger 語法
DISABLE TRIGGER [dbo].[RPTIMG_LOG_delete_trigger] ON [dbo].[RPTIMG_LOG]
啟用 Trigger 語法
ENABLE TRIGGER [dbo].[RPTIMG_LOG_delete_trigger] ON [dbo].[RPTIMG_LOG]
所有資料表,建立預防刪除所有資料的 Trigger
/*-------------------------------------------------- description: …

SSMS change Object Explorer Font Size

Image
近日發現在筆電上使用 SQL Server Management Studio 中 Object Explorer 查找項目時,感覺字體太小越來越吃力。😅
若要調整其顯示字形與大小,目前沒有獨立的設定,只能透過修改全域環境字形達成。
從選單 Tools –> Options
開啟 Options 設定視窗,選擇 Environment –> Fonts and Colors –> Environment Font
再調整字形與大小。


調整後的效果如下圖