EM 認定 View 優先級高於 Function,導致相依鏈 fnT1 ← vwT1 ← fnT2 產生錯誤建立順序。
CREATE FUNCTION fnT1() RETURNS INT AS BEGIN RETURN 123 END GO
CREATE VIEW vwT1 AS SELECT aa=dbo.fnT1() GO
CREATE FUNCTION fnT2() RETURNS TABLE AS RETURN (SELECT * FROM vwT1) GO
-- DROP 區段略
-- 建立區段(錯誤順序):
CREATE VIEW vwT1 AS SELECT aa=dbo.fnT1() GO
-- ↑ 此處 fnT1 尚未建立!
CREATE FUNCTION fnT1() RETURNS INT AS BEGIN RETURN 123 END GO
CREATE FUNCTION fnT2() RETURNS TABLE AS RETURN (SELECT * FROM vwT1) GO
此問題在 SQL 2000 多版本中存在,建議使用第三方工具或手動編寫部署腳本。