简体   繁体   English

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

[英]MS SQL, How to ALTER/ CREATE procedure with error

I need create procedure with contain errors. 我需要创建包含错误的过程。 For example 例如

CREATE PROCEDURE dbo.test
AS
BEGIN
    SET NOCOUNT ON;
    SELECT *
    FROM openquery(LINKED, 'select * from something'' ')
END
GO

Could not find server 'LINKED' in sys.servers 在sys.servers中找不到服务器“链接”

How can I created it though any errors (Not exists linkedserver or select in openquery return error) ? 遇到任何错误(不存在linkedserver或在openquery中选择返回错误)时,如何创建它?

You can use dynamic SQL to avoid linked server validation. 您可以使用动态SQL来避免链接服务器验证。 Now you'll get the linked server error on execution instead of compilation. 现在,您将在执行而不是编译时收到链接服务器错误。 I personally think dynamic SQL is not an elegant solution, but it solves your problem. 我个人认为动态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

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM