J'ai importé un tas de tables d'un ancien serveur SQL (2000) dans ma base de données de 2008. Toutes les tables importées sont préfixées avec mon nom d' utilisateur, par exemple: jonathan.MovieData
. Dans le tableau, properties
il est répertorié jonathan
comme le schéma de base de données. Lorsque j'écris des procédures stockées, je dois maintenant inclure jonathan.
devant tous les noms de table, ce qui est déroutant.
Comment changer toutes mes tables pour qu'elles soient dbo au lieu de Jonathan?
Résultat actuel: jonathan.MovieData
Résultat désiré: dbo.MovieData
sql
sql-server
database
sql-server-2008
schema
Jonathan Hall
la source
la source
[DOMAIN\user].[tableName]
. En général, dans la communauté SQL Server, les identificateurs entre guillemets Transact-SQL sont utilisés ([
et]
), à éviter à"
moins qu'il y ait une exigence spécifique pour cela.[
et]
, comme dans tout autre cas, lorsque vous voulez être précis sur un nom d'objet SQL.[domain\user123].TableName
.Vous pouvez exécuter ce qui suit, qui générera un ensemble d'instructions ALTER sCHEMA pour tous vos talbes:
Vous devez ensuite copier et exécuter les instructions dans l'analyseur de requêtes.
Voici un script plus ancien qui fera cela pour vous aussi, je pense en changeant le propriétaire de l'objet. Je ne l'ai pas essayé en 2008, cependant.
Je l'ai obtenu sur ce site .
Il parle également de faire de même pour les procs stockés si vous en avez besoin.
la source
sys.tables
(un sous-ensemble de sys.objects) à la place.Réf: ALTER SCHEMA
la source
Déplacer la table du schéma dbo vers MySchema:
Déplacer la table de MySchema vers le schéma dbo:
la source
Je viens de poster ceci à une question similaire: dans SQL Server 2005, comment puis-je changer le "schéma" d'une table sans perdre de données?
Un léger amélioration de l'excellente réponse de sAeid ...
J'ai ajouté un exécutable pour que ce code s'exécute automatiquement, et j'ai ajouté une union en haut pour que je puisse changer le schéma des deux tables ET des procédures stockées:
J'ai aussi dû restaurer un dbdump, et j'ai trouvé que le schéma n'était pas dbo - j'ai passé des heures à essayer d'obtenir des transferts de données de Sql Server Management Studio ou de Visual Studio pour modifier le schéma de destination ... J'ai fini par exécuter cela contre le restauré dump sur le nouveau serveur pour obtenir les choses comme je le voulais.
la source
Vous pouvez modifier par lots les schémas de plusieurs objets de base de données comme décrit dans cet article:
Comment changer le schéma de toutes les tables, vues et procédures stockées dans MSSQL
la source
Façon de le faire pour une chose individuelle:
modifier le schéma dbo transfer jonathan.MovieData
la source
J'ai eu un problème similaire mais mon schéma contenait une barre oblique inverse. Dans ce cas, incluez les crochets autour du schéma.
la source
Ouvrez SQL Server en tant que compte SA et cliquez sur une nouvelle requête après les requêtes ci-dessous
puis cliquez sur exécuter, il restaurera tous les schémas détenus sur le compte SA
la source
ms-help: //MS.SQLCC.v9/MS.SQLSVR.v9.en/tsqlref9/html/0a760138-460e-410a-a3c1-d60af03bf2ed.htm
ALTER SCHEMA nom_schéma TRANSFER nom_sécurisable
la source