[英]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.