Nolock không hoạt động đối với tôi.
Tuy nhiên, sử dụng OPENQUERY làm ...
Thay DMS_DB.dbo.tfu_V_DMS_Desktop(''de'')'
với [110.10.10.100].testdbname.dbo.ufn_getdata(''4/25/2013'')
IF EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[tfu_V_DMS_Desktop]') AND type in (N'FN', N'IF', N'TF', N'FS', N'FT'))
DROP FUNCTION [dbo].[tfu_V_DMS_Desktop]
GO
CREATE FUNCTION [dbo].[tfu_V_DMS_Desktop]
(
@param1 int
)
RETURNS table
AS
RETURN
(
-- Add the SELECT statement with parameter references here
-- SELECT 0 as abc
SELECT * FROM OPENQUERY(CORDB2008R2, 'SELECT * FROM DMS_DB.dbo.tfu_V_DMS_Desktop(''de'')')
)
GO
Trên một chú thích, vấn đề là OPENQUERY không cho phép một biến, vì vậy bạn không thể có tham số biến. Tuy nhiên, bạn có thể tham chiếu tất cả các bảng và dạng xem dưới dạng lượt xem từ một máy chủ từ xa và chỉ cần tạo hàm có giá trị 1: 1 trong bảng. Tuy nhiên, điều này có thể sẽ chậm.
Nguồn
2014-10-03 08:51:40
WITH từ khóa thực sự là lừa. –
Điều này tạo ra lỗi cho tôi. Dường như xung đột với câu trả lời trên http://dba.stackexchange.com/questions/71174/use-nolock-hint-when-calling-table-valued-function. –
Điều này làm việc cho tôi. Một số mã cũ chỉ có ** (nolock) ** và tôi đã nhận được một lỗi bằng cách sử dụng nó trong SSMS. Thêm ** WITH ** đã khắc phục sự cố của tôi. –