MS SQL,如何使用错误更改/创建过程

时间:2014-06-12 09:36:03

标签: sql sql-server

我需要创建包含错误的过程。例如

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)?

1 个答案:

答案 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