1. 程式人生 > >無法在SQL 2005系統資料庫中執行的T-SQL語句(XML處理)

無法在SQL 2005系統資料庫中執行的T-SQL語句(XML處理)

表現:

下面的程式碼, 在相容性級別90的所有使用者資料庫和tempdb庫中都能執行, 但無法在系統資料庫中執行, 執行會收到如下錯誤:

Msg 4121, Level 16, State 1, Line 2

Cannot find either column "dbo" or the user-defined function or aggregate "dbo.f_test", or the name is ambiguous.

看來系統資料庫中做東西有門檻了, 不過, 如果不在計算列中引用函式, 直接在查詢中引用函式是沒有問題的, 所以不知道是否應該算 BUG

CREATE FUNCTION dbo.

f_test(

@value xml

)RETURNS int

AS

BEGIN

RETURN @value.value('(//*)[1]', 'int')

END

GO

CREATE TABLE #(

col1 xml,

col2 as dbo.f_test(col1)

)

GO

DROP TABLE #

DROP FUNCTION dbo.f_test