如何通过在 sql 服务器的数据库 ABC 中调用存储过程来重命名数据库 XYZ 中的表

How to rename tables in database XYZ by calling a sproc in database ABC in sql server

我需要在数据库 ABC 上有一个存储过程,它将重命名数据库 XYZ 中的表。这是我试过的-

USE ABC
GO

CREATE PROC RENAME_TABLES
AS
BEGIN

USE XYZ /*This throws Msg 154 error USE cannot be used inside stored procedure*/
GO

EXEC SP_RENAME 'CASH_TRXN','MC_TRXN'
EXEC SP_RENAME 'MI_TRXN','MMI_TRXN'
EXEC SP_RENAME 'BACK_OFFICE_TRXN','MBO_TRXN'

END

但是我收到错误消息,因为我不能在存储过程中包含 USE。还有其他选择吗?我无法将我的存储过程移动到任何其他数据库。

给你...

CREATE PROC RENAME_TABLES
AS
BEGIN
    execute ('USE [XYZ] EXEC SP_RENAME ''CASH_TRXN'',''MC_TRXN''')
END

Source