如何更改存储过程中使用的表的架构

时间:2014-08-22 04:23:49

标签: sql-server tsql stored-procedures

我有程序dbo.GetData:

Create procedure dbo.GetData
As
Begin
Select * from dbo.tblName
End

我还创建了一个模式[ABC],表ABC.tblName

所以,我想通过使用另一个存储过程将过程dbo.GetData中的表的schema [dbo]更改为[ABC]。 结果是:

Create procedure dbo.GetData
As
Begin
Select * from [ABC].tblName
End

我该怎么做?

谢谢大家。

2 个答案:

答案 0 :(得分:0)

我不确定我理解您的要求,但我认为您只想更改存储过程中正在执行的代码。如果是这样,一个简单的ALTER PROCEDURE可以改变代码,但不是名称:

ALTER PROCEDURE dbo.GetData
AS
BEGIN
    SELECT * FROM [ABC].tblName
END

[ALTER PROCEDURE] 1的完整语法(适用于SQL Server)

如果这不是你所追求的,请澄清问题。

更新:

我看到的唯一真正的解决方案是您编写脚本,然后使用文本编辑器将dbo.值替换为[ABC].值。

我只是尝试通过更新系统表来尝试这样做,但是在SQL Server 2012(我使用的)中,它简直太复杂了。

答案 1 :(得分:0)

试试这个希望,这对你有所帮助!

ALTER SCHEMA NewSchemaName TRANSFER OldSchemaName.ObjectName