データベースのテーブルEmployees
のスキーマ名を変更したい。現在のテーブルでは、Employees
データベースのスキーマ名はdbo
です。これをexe
に変更します。どうすればいいの?
例:
から
dbo.Employees
に
exe.Employees
私はこのクエリを試してみました:
ALTER SCHEMA exe TRANSFER dbo.Employees
しかし、これは私にエラーを与えます:
スキーマ 'exe'は存在しないか、権限がないため変更できません。
私は何を取りこぼしたか?
スキーマを作成してください:
IF (NOT EXISTS (SELECT * FROM sys.schemas WHERE name = 'exe'))
BEGIN
EXEC ('CREATE SCHEMA [exe] AUTHORIZATION [dbo]')
END
ALTERスキーマ:
ALTER SCHEMA exe
TRANSFER dbo.Employees
以下で試してください
declare @sql varchar(8000), @table varchar(1000), @oldschema varchar(1000), @newschema varchar(1000)
set @oldschema = 'dbo'
set @newschema = 'exe'
while exists(select * from sys.tables where schema_name(schema_id) = @oldschema)
begin
select @table = name from sys.tables
where object_id in(select min(object_id) from sys.tables where schema_name(schema_id) = @oldschema)
set @sql = 'alter schema ' + @newschema + ' transfer ' + @oldschema + '.' + @table
exec(@sql)
end
ALTER SCHEMA NewSchema TRANSFER [OldSchema].[TableName]
SQLでALTER SCHEMA
クエリを使用するときは、常に括弧を使用する必要があります。そうしないと、エラーメッセージが表示されます。
SSMSを通じて、私は新しいスキーマを作成しました。
私はこの投稿がスキーマを変更することを発見しましたが、新しいスキーマに変更しようとしたときにも同じパーミッションエラーを得ていました。私は私のSSMSにリストされたいくつかのデータベースを持っているので、私はデータベースを指定しようとしました、そしてそれはうまくいきました:
USE (yourservername)
ALTER SCHEMA exe TRANSFER dbo.Employees
CREATE SCHEMA exe AUTHORIZATION [dbo]
GO
ALTER SCHEMA exe
TRANSFER dbo.Employees
GO
あなたのコードは次のとおりです。
FROM
dbo.Employees
TO
exe.Employees
私はこの質問で試しました。
ALTER SCHEMA exe TRANSFER dbo.Employees
create schema exe
を書いて実行するだけです。
MSDNをチェックしてください...
CREATE SCHEMA
: http://msdn.Microsoft.com/ja-jp/library/ms189462.aspx
それから
ALTER SCHEMA
: http://msdn.Microsoft.com/ja-jp/library/ms173423.aspx
それともあなたはSOでそれをチェックすることができます...
Sqlでオブジェクトの名前を変更するときは、非常に注意してください。自分のしていることに完全に慣れていないと、依存関係が失敗することがあります。あなたが環境上で適切なアクセス権を持っているならば、これはものの名前を変更するために簡単に(あまりにも多く)働くと言った:
exec sp_rename 'Nameofobject', 'ReNameofobject'
SSMSで正しいデータベースコンテキストにいることを確認してください。あなたと同じエラーを得ました、しかし私はそのスキーマがすでに存在していることを知っていました。私が「マスター」の文脈にいることに気づかなかった。データベースをコンテキストに変更した後、ALTERが機能しました。
新しいスキーマを作成するには、以下の手順に従ってください。
1. Open your Database. 2. Route to Security folder. 3. Inside it is a folder named Schema. 4. Right click the schema folder> New Schema. 5. Add a Schema > Click OK.
スキーマを変更するには、次のSQLコマンドを実行します。
ALTER SCHEMA new_schema TRANSFER dbo.Employees
念のため、もっと低いバージョンを探している人 -
SQL Server 2000の場合
sp_changeobjectowner @objname = 'dbo.Employees'、@ newowner = 'exe'