J'ai deux tables, une table a une colonne rowguid et l'autre a une colonne auto-incrémentée mais les deux tables n'ont pas de clé primaire ou étrangère. Je veux créer une troisième table qui stocke la relation entre les deux tables ci-dessus. Quelqu'un peut-il me donner la manière correcte et la plus facile de le faire. Je suis nouveau en utilisant sql server. répondez-moicréer une nouvelle table ayant plusieurs à une relation entre les deux autres tables-sql server management studio
Répondre
Tout d'abord, vous devrez faire un appel sur la façon dont ces tables sont liées entre elles. Il doit y avoir une règle métier/logique pour ce faire, et ce serait l'association originale.
Ensuite, vous pouvez essayer quelque chose comme
DECLARE @TableGuid TABLE(
GuidID UNIQUEIDENTIFIER DEFAULT NEWID(),
Val VARCHAR(10)
)
DECLARE @TableID TABLE(
ID INT IDENTITY(1,1),
Val VARCHAR(10)
)
INSERT @TableGuid (Val) SELECT 'A'
INSERT @TableID (Val) SELECT 'A'
SELECT * FROM @TableGuid
SELECT * FROM @TableID
DECLARE @TableManyMany TABLE(
GuidID UNIQUEIDENTIFIER,
ID INT,
PRIMARY KEY(GuidID, ID)
)
INSERT INTO @TableManyMany
SELECT GuidID,
ID
FROM @TableGuid g INNER JOIN
@TableID i ON g.Val = i.Val
SELECT *
FROM @TableManyMany
Amby, jamais rien à une base de données que par un script. C'est une très mauvaise pratique d'utiliser l'interface graphique et vous avez besoin de casser l'habitude maintenant. Vous avez besoin de choses dans les scripts pour pouvoir les placer dans le contrôle des sources et les utiliser pour les déployer sur d'autres serveurs.
Jamais, et je ne veux dire jamais, avoir une table sans clé primaire. C'est le premier jour de la conception de la base de données. Si vous n'avez pas de clé primaire, avez-vous au moins un index unique? Sinon, vous pouvez obtenir des valeurs en double, ce qui est mauvais. Toute table sans un moyen d'identifier de manière unique une ligne est cassée. Fixez cela avant d'aller plus loin.
Ce dont vous avez également besoin, c'est de déterminer la relation entre les deux tables. Comment savez-vous quel enregistrement dans tablea doit correspondre à quel enregistrement dans tableb? Puisque vous avez deux types de données différents, ce n'est pas la relation, donc vous devez avoir un autre champ (ou une combinaison de champs) qui est le même dans les deux tables pour construire la relation. Si vous n'avez pas cela, quelle est la base de la relation. Veuillez montrer des exemples de données dans les deux tableaux et montrer quelles données vous voulez dans la table de bridge. Je crois que vous n'avez pas encore suffisamment réfléchi à la conception de la table en fonction de ce que vous avez posté.
- 1. Comment créer une clé composite avec SQL Server Management Studio?
- 2. SQL 2008 Management Studio: où trouver les relations de table?
- 3. Copie d'une relation 1-à-plusieurs entre deux tables vers deux autres tables (SQL 2005)
- 4. HABTM-Relation: Créer une relation pour tous les autres documents
- 5. Comment tester une fonction table dans SQL Server Management Studio?
- 6. Établir une relation à plusieurs entre deux entités
- 7. SQLAlchemy relation plusieurs-à-plusieurs sur une seule table
- 8. Impossible de créer une relation de table - SQL Server 2005
- 9. Comment créer une relation has_many entre deux modèles, avec plusieurs modèles entre? (Ruby on Rails ActiveRecord)
- 10. Forcer un lien/une table de jointure à devenir une relation plusieurs à plusieurs dans EF4
- 11. sql créer une vue dans une relation à plusieurs
- 12. Comment créer et mettre à jour une relation plusieurs à plusieurs avec EF
- 13. Comment modéliser une relation plusieurs à plusieurs?
- 14. Plusieurs à plusieurs relation
- 15. Dans MySQL, besoin de joindre deux tables avec une table ayant plusieurs références à la seconde
- 16. Pouvons-nous établir une relation entre deux listes génériques?
- 17. Comment créer une requête HQL pour renvoyer des objets dans une relation plusieurs à plusieurs?
- 18. trouver une relation à travers plusieurs tables
- 19. ActiveRecord: créer une relation un-à-plusieurs avec lui-même
- 20. Une vue ayant plusieurs formes
- 21. Une table Join (table d'association) possède-t-elle une clé primaire? relation plusieurs à plusieurs
- 22. SQL Server Management Studio: Erreur inconnue "-1073741766"
- 23. Créer une relation un-à-un entre la table et la vue dans EF4?
- 24. Vue du schéma SQL Server Management Studio
- 25. Requête MySql sur une relation plusieurs-à-plusieurs
- 26. SQL Server 2008 Management Studio supprime les tableaux d'avertissement?
- 27. Valeur maximale dans une relation plusieurs-à-plusieurs
- 28. SQL Management Studio Insérer une instruction conflict
- 29. SQL Server 2008 créer des tables, invisible dans SQL Server Management Studio
- 30. Création d'une nouvelle table plusieurs-à-plusieurs
merci de répondre. est-ce le tsql? parce que je ne peux pas comprendre la syntaxe ici. comme INSERT @TableGuid (Val) SELECT 'A'. Pouvez-vous s'il vous plaît expliquer? et pour de nombreuses relations, ai-je encore besoin d'Inner Join? existe-t-il aussi un moyen facile de le faire en studio de gestion? – amby
TSQL, @TableGuid serait une variable de table que vous pouvez déclarer. Si vous deviez l'exécuter dans le Management Studio, vous verriez le résultat. En outre, montrez-nous quelques détails/exemples de données, afin que nous puissions mieux comprendre votre structure de schéma/données et ce que la sortie attendue devrait être. Cela nous aidera à vous aider (http://www.imdb.com/title/tt0116695/) X-) –
Merci. J'ai compris maintenant. – amby