利用 Linked Server 呼叫資料表值函數建立一個資料表值函數來測試
CREATE FUNCTION dbo.GetDepartment(@DepartmentID smallint)
RETURNS TABLE
AS
RETURN
(
SELECT
GroupName ,
DepartmentID ,
Name
FROM Adventureworks2014.HumanResources.Department
WHERE DepartmentID = @DepartmentID
)
GO
利用 Linked Server(已事先建立,名稱為 HyperV)四部份名稱來呼叫資料表值函數SELECT * FROM HyperV.Adventureworks2014.dbo.GetDepartment(1)
GO
會得到下面錯誤訊息訊息 4122,層級 16,狀態 1,行 22改利用 OPENQUERY() 來呼叫
不允許遠端資料表值函數呼叫。
SELECT *
FROM OPENQUERY
(
HyperV,
'SELECT * FROM AdventureWorks2014.dbo.GetDepartment(1)'
)
搜尋到這篇文章時 Remote table-valued function calls are not allowed 還想說,2008 的版本應該就不會有這個問題,實際在 2014 上測試,這問題來是存在
- 延伸閱讀
- [SQL] 使用者自訂函數
沒有留言:
張貼留言