/ / champ de mise à jour d'une autre base de données SQL Server - .net, vb.net

champ de mise à jour d'une autre base de données SQL Server - .net, vb.net

J'ai un petit problème. J'ai deux bases de données dont la première est Gym et le second est Prod:

Gym: ---------------------- Tabela commande: ---------------------- Cod_Product prénom -----------------------  Prod: ----------------------- Produits Tabela: ------------------------- Id prénom ---------------------- Tabela CodProdutos: ---------------------- Cod_prod id_prod --------------

La nécessité ici est de mettre à jour le champ de la table Produits égal au champ Nom des ordres de table du gymnase de la base de données.

Je veux connecter les commandes de la table de gym àtable codprodutos de la base de données Prod, puis connectez-vous à ma table appelée Product, de cette façon, je vais mettre à jour la ligne en ligne et ne pas donner la première ligne des commandes de table à toutes les lignes des produits.

Est-ce que quelqu'un peut m'aider?

Réponses:

1 pour la réponse № 1

Puisque vous utilisez .NET, vous utilisez probablement aussi SQL Server, donc cela devrait fonctionner:

UPDATE Prod.dbo.Products SET Name = (
SELECT Name FROM Gym.dbo.orders WHERE Cod_Product = (
SELECT Cod_prod FROM Prod.dbo.CodProdutos WHERE id_prod = Prod.dbo.Products.Id
)
);

Si vous utilisez SQL Server, alors vousprobablement en utilisant une seule instance pour héberger les deux bases de données. Dans ce cas, vous pourriez utiliser la syntaxe suivante pour distinguer les tables dans les deux instances:

<database name>.dbo.<table name>

dbo juste sorte de moyen "objet de base de données", qui peut être une table, une procédure stockée, une vue, ce genre de chose. Donc, si vous dites:

    Prod.dbo.Products

ça veut dire:

table "Products", from among the database objects in the database "Prod"

Souvent, vous pouvez vous contenter d'utiliser simplement le nom d'une table car vous rencontrerez souvent deux conditions:

  1. Vous ne faites que jouer avec une base de données dans la même requête.
  2. Vous utilisez également ce que l'on appelle un "catalogue par défaut", c'est-à-dire la base de données que SQL Server supposera si vous ne lui dites pas de base de données.

Si vous utilisez le catalogue par défaut Prod, alors SQL Server prendra ceci:

SELECT * FROM Products

et le traiter automatiquement comme:

SELECT * FROM Prod.dbo.Products

Vous avez mentionné .NET et VB.NET dans les balises de votre question, donc je suis assez confiant que ce soit SQL Server que vous utilisez. Dans ce cas, des choses comme un IDE ou un Studio de gestion ou quelque chose peuvent en quelque sorte sélectionner automatiquement un catalogue par défaut sans nécessairement vous le dire. Mais si vous voulez travailler sur plusieurs bases de données dans la même requête, c’est probablement le problème que vous rencontrez.