ALTER SCHEMA语句用于将对象从一个模式转移到同一数据库中的另一个模式。
句法 :
ALTER SCHEMA target_schema_name
TRANSFER [ object_type :: ] object_name;
参数 :
- target_schema_name是数据库中的模式,对象将移入该模式。
- object_type表示将更改所有者架构的对象的类型。
- object_name是将被移动到target_schema_name的对象的名称。
注意: SYS或INFORMATION_SCHEMA不能更改。
例子 :
让我们在dbo模式中创建名为geektab的表:
CREATE TABLE dbo.geektab
(id INT PRIMARY KEY IDENTITY,
name NVARCHAR(40) NOT NULL,
address NVARCHAR(255) NOT NULL);
现在,将一些行插入dbo.geektab表中:
插入dbo.geektab(ID,名称,地址)
VALUES (1, 'Neha', 'B-Wing, Delhi'), (2, 'Vineet', 'D-Wing, Noida');
让我们创建一个查找id的存储过程:
CREATE PROCEDURE sp_get_id(@id INT
) AS
BEGIN
SELECT *
FROM dbo.geektab
WHERE id = @id;
END;
让我们将dbo.geektab表移动到geek模式:
ALTER SCHEMA怪胎转移对象:: dbo.geektabs;
运行sp_get_id存储过程:
EXEC sp_get_id;
SQL Server将引发类似于以下内容的错误:
strong>Msg 208, Level 16, State 1, Procedure sp_get_id, Line 3
Invalid object name 'dbo.geektab'
现在,让我们手动更改存储过程以反映怪胎模式:
ALTER PROCEDURE sp_get_id( @id INT
) AS
BEGIN SELECT *
FROM geek.geektab
WHERE id = @id;
END;
运行sp_get_id存储过程:
EXEC sp_get_id 1;
输出 –
id | name | address |
---|---|---|
1 | Neha | B-Wing, Delhi |