Я использую openquery для получения моих данных. Из-за того, что длина моего запроса превышает 8000 символов, я использую этот подход:
DECLARE @myStatement VARCHAR(MAX)
SET @myStatement 'SELECT * FROM Employee...'
EXECUTE (@myStatement) AT [MyLinkedServer]
Зная, что невозможно использовать переменные в представлении, я пытаюсь использовать пользовательскую функцию, котораявозвращает таблицу, как показано ниже:
CREATE FUNCTION dbo.EmployeeDetailsForHR
(@myStatement VARCHAR(MAX))
RETURNS TABLE
AS RETURN(EXECUTE (@myStatement) AT [MyLinkedServer]);
SELECT *
FROM dbo.EmployeeDetailsForHR('SELECT * FROM Employee...');
Но моя функция CREATE неверна. Какой правильный синтаксис в моем случае?