我需要创建包含错误的过程。例如
CREATE PROCEDURE dbo.test
AS
BEGIN
SET NOCOUNT ON;
SELECT *
FROM openquery(LINKED, 'select * from something'' ')
END
GO
无法找到服务器' LINKED'在sys.servers中
如何通过任何错误创建它(不存在linkedserver或select in openquery return error)?
答案 0 :(得分:0)
您可以使用动态SQL来避免链接服务器验证。现在,您将在执行时获得链接服务器错误而不是编译。我个人认为动态SQL不是一个优雅的解决方案,但它解决了你的问题。
CREATE PROCEDURE dbo.test
AS
BEGIN
SET NOCOUNT ON;
DECLARE @sqlCommand NVARCHAR(MAX);
SET @sqlCommand = 'SELECT *
FROM openquery(LINKED, ''select * from something'''' '')';
EXEC (@sqlCommand)
END
GO