256 votes

Modifier le nom de schéma de la table en SQL

Je veux changer le nom du schéma de la table Employees de la Base de données. Dans la table courante Employees schéma de base de données nom est dbo je veux le changer pour exe. Comment puis-je le faire ?

exemple:

À PARTIR de

dbo.Employees

POUR

exe.Employees

J'ai essayé avec cette requête.

ALTER SCHEMA exe TRANSFER dbo.Employees

Mais cela donne-moi de l'erreur.

Erreur:

Ne peut pas modifier le schéma "exe", parce qu'il n'existe pas ou vous n'avez pas la permission.

Ce que j'ai manqué ou fait de mal ?

387voto

Pandian Points 3355

Essayez comme ci-dessous ... cela vous aidera ....

Créer un schéma:

 IF (NOT EXISTS (SELECT * FROM sys.schemas WHERE name = 'exe')) 
BEGIN
    EXEC ('CREATE SCHEMA [exe] AUTHORIZATION [dbo]')
END
 

ALTER Schema:

 ALTER SCHEMA exe 
    TRANSFER dbo.Employees
 

35voto

Essayez ci-dessous

 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
 

7voto

Jason D. Points 1

Par le biais de SSMS, j'ai créé un nouveau schéma par:

  • En cliquant sur le dossier de Sécurité dans l'Explorateur d'Objets à l'intérieur de mon serveur,
  • cliqué avec le bouton droit de Schémas
  • Sélectionné "Nouveau Schéma..."
  • Appelé mon nouveau schéma (exe dans votre cas)
  • Cliquez sur OK

J'ai trouvé ce post pour modifier le schéma, mais aussi obtenir les mêmes autorisations d'erreur lorsque vous essayez de modifier le nouveau schéma. J'ai plusieurs bases de données indiquées dans mon SSMS, alors j'ai essayé la spécification de la base de données et il a travaillé:

USE (yourservername)  
ALTER SCHEMA exe TRANSFER dbo.Employees 

5voto

user2599599 Points 1

Votre code est:

 FROM
 dbo.Employees
TO
 exe.Employees
 

J'ai essayé avec cette requête.

 ALTER SCHEMA exe TRANSFER dbo.Employees
 

Il suffit d'écrire create schema exe et de l'exécuter

3voto

宮本 武蔵 Points 5712

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X