使用服务器名和数据库名修改存储过程

时间:2020-01-14 04:09:20

标签: sql-server

我已经在网上搜索了是否可行,但是很遗憾,我没有找到任何答案。我只是想问一下这是否可行,因为当我尝试下面的代码时,它说:

数据库“ IPAddress”不存在。确保名称是 输入正确。

我知道该IP地址的凭据,因此我可以轻松登录并运行此sp。如果可能的话,我已经将服务器添加到链接服务器,只是出于好奇。

USE [IPAddress].[DatabaseName]
GO
/****** Object:  StoredProcedure [dbo].[SP_Name]    Script Date: 1/14/2020 10:36:26 AM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO

ALTER PROCEDURE [dbo].[SP_Name]

2 个答案:

答案 0 :(得分:1)

我以前从未做过,但是显然您可以使用EXEC AT

https://www.mssqltips.com/sqlservertip/1757/dynamic-sql-execution-on-remote-sql-server-using-exec-at/

类似这样的东西

EXEC ('USE [Database] GO ALTER PROC spName.....') AT [LinkedServer];

答案 1 :(得分:0)

您不能以这种方式使用USE命令。您只能为USE命令输入数据库名称。 Read more about USE

相反,您可以在SSMS中使用SQLCMD模式实现相同的目的。 Read more on SQLCMD mode

:CONNECT [ipaddress]
USE [Database]
GO
ALTER PROCEDURE [dbo].[spname]...
GO
相关问题