Tec*_*ndz 2 sql-server sql-server-2008
在SQL Server中,我有一个数据库abc
.在这个数据库中,我有数百个表.调用这些表中的每一个xyz.table
我想更改要调用的所有表abc.table
.
我们是否有办法将所有名称从数据库中更改xyz.table
为?abc.table
abc
我可以通过将每个表的架构更改为abc来手动更改名称
您可以在xyz
模式中的所有表上运行游标,并将所有这些表移动到abc
模式中:
DECLARE TableCursor CURSOR FAST_FORWARD
FOR
-- get the table names for all tables in the 'xyz' schema
SELECT t.Name
FROM sys.tables t
WHERE schema_id = SCHEMA_ID('xyz')
DECLARE @TableName sysname
OPEN TableCursor
FETCH NEXT FROM TableCursor INTO @TableName
-- iterate over all tables found
WHILE @@FETCH_STATUS = 0
BEGIN
DECLARE @Stmt NVARCHAR(999)
-- construct T-SQL statement to move table to 'abc' schema
SET @Stmt = 'ALTER SCHEMA abc TRANSFER xyz.' + @TableName
EXEC (@Stmt)
FETCH NEXT FROM TableCursor INTO @TableName
END
CLOSE TableCursor
DEALLOCATE TableCursor
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
8834 次 |
最近记录: |