/ / Feld von einer anderen Datenbank aktualisieren SQL Server - .net, vb.net

Update-Feld von einer anderen Datenbank SQL Server - .net, vb.net

Ich habe ein kleines Problem. Ich habe zwei Datenbanken, die erste Gym und das zweite ist Prod:

Fitnessstudio: ---------------------- Tabela bestellt: ---------------------- Cod_Produkt Name -----------------------  Prod: ----------------------- Tabela Produkte: ----------------------- Ich würde Name ---------------------- Tabela CodProdutos: ---------------------- Cod_prod id_prod --------------

Hier ist es notwendig, das Feld aus der Tabelle Produkte gleich dem Feld Name der Tabellenreihenfolge der Datenbank Gym zu aktualisieren.

Ich möchte die Tischbestellungen vom Fitnessstudio an verbindenTabelle codprodutos aus der Datenbank Prod und dann mit meiner Tabelle namens Produkt verbinden, auf diese Weise werde ich Zeile für Zeile aktualisieren und nicht die erste Zeile der Tabelle Aufträge an alle Zeilen der Produkte geben.

Kann mir jemand helfen?

Antworten:

1 für die Antwort № 1

Da Sie .NET verwenden, verwenden Sie wahrscheinlich auch SQL Server, damit dies funktioniert:

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
)
);

Wenn Sie SQL Server verwenden, dann sind SieVermutlich mit einer einzigen Instanz, um beide Datenbanken zu hosten. In diesem Fall können Sie die folgende Syntax verwenden, um in beiden Instanzen zwischen Tabellen zu unterscheiden:

<database name>.dbo.<table name>

dbo nur irgendwie bedeutet "Datenbank-Objekt", die eine Tabelle, gespeicherte Prozedur, Ansicht, diese Art von Sache sein kann. Also wenn du sagst:

    Prod.dbo.Products

es bedeutet:

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

Oftmals kommen Sie mit dem Namen einer Tabelle allein zurecht, weil Sie oft zwei Bedingungen erfüllen:

  1. Sie verwirren nur eine Datenbank innerhalb derselben Abfrage.
  2. Sie verwenden auch das, was als "Standardkatalog" bekannt ist. Dies ist die Datenbank, die von SQL Server angenommen wird, wenn Sie nicht sagen, dass eine Datenbank darin suchen soll.

Wenn Sie den Standardkatalog verwenden Prod, dann nimmt SQL Server das:

SELECT * FROM Products

und behandle es automatisch wie:

SELECT * FROM Prod.dbo.Products

Sie haben .NET und VB erwähnt.NET in den Tags für Ihre Frage, so dass ich ziemlich zuversichtlich bin, dass es SQL Server ist, den Sie verwenden. In diesem Fall können Dinge wie eine IDE oder ein Management Studio oder etwas automatisch einen Standardkatalog auswählen, ohne dass Sie dies unbedingt sagen müssen. Aber wenn Sie mehrere Datenbanken in derselben Abfrage bearbeiten möchten, ist das wahrscheinlich der Überfall, in den Sie hineingeraten.