SQL 2000 時代備份 syscomments 表,大型物件會拆多列,還原時需重組極痛苦。若備份在磁帶上更不可行。
系統函數 OBJECT_DEFINITION(object_id) 直接回傳物件完整 T-SQL 定義碼,極大簡化程式碼歸檔。
-- 建立測試函數
CREATE FUNCTION udf_Multiply (@Val1 INT, @Val2 INT) RETURNS INT AS
BEGIN DECLARE @RetVal INT; SET @RetVal = @Val1 * @Val2; RETURN @RetVal END
-- 取得完整定義碼
DECLARE @ObjectID INT
SET @ObjectID = OBJECT_ID('udf_Multiply')
SELECT OBJECT_DEFINITION(@ObjectID)
-- 回傳:CREATE FUNCTION udf_Multiply ... 完整原始碼
定期將核心存儲程序、函數、觸發器的 OBJECT_DEFINITION 存入歸檔表,發生錯誤時秒級還原單一物件,無需還原整庫或找磁帶。