La modification d'un propriétaire de la table
Je suis en train de changer le propriétaire d'un tableau:
sp_changeobjectowner 'OWNER.TABLENAME', 'dbo'
Mais lors de l'exécution j'obtiens le message d'erreur:
Msg 15001, Niveau 16, État 1, Procédure sp_changeobjectowner, Ligne 62
L'objet du PROPRIÉTAIRE.TABLENAME' n'existe pas ou n'est pas un objet valide pour
de cette opération.
Vous devez vous connecter pour publier un commentaire.
La manière correcte de le faire dans SQL Server 2005 et est cesser de penser le préfixe comme un "propriétaire". Le
sp_changeobjectowner
de la procédure a été abandonné depuis SQL Server 2005, et vous devriez plutôt utiliser schéma DDL, par exemple:À vérifier le "propriétaire" (ce qui peut retourner plusieurs lignes si vous avez plus d'un
tablename
dans plusieurs schémas):Aussi assurez-vous que vous épeler l'objet correctement. Dans un classement sensible à la casse, par exemple,
TABLENAME
ettablename
ne sont pas le même objet, et l'orthographe Incorrecte pourrait aussi conduire à cette erreur.Votre proposition est correcte:
Si l'erreur s'est vraiment passé, essayez de vérifier qui est le propriétaire actuel de la table:
SCHEMA_NAME(sys.tables.schema_id)
.Appliquer Les Étapes Suivantes
(1) lancer la Requête Suivante sur Invite Sql
(2) Copier Le Résultat et de le Coller à Nouveau à Nouveau une Requête Sql et de Nouveau Exécuter
C'est un Changement de propriétaire de vos Tables, Vues, Procédures Stockées et les Fonctions
Pour couvrir le cas où une table existe dans la construction d'un nom de schéma comme "Commune" (qui n'est pas liée à un nom d'utilisateur), puis c'est le propriétaire du schéma qui doit être changé.
Qui va changer les objets dans le schéma de la propriétaire spécifié 'dbo' et de garder la table dans les "Communes".
De schéma de liste des propriétaires:
Si la suppression de la table est une option, vous pouvez supprimer et recréer en vertu de l'utilisateur souhaité. Il suffit de spécifier dbo dans la création de script. Par exemple: