/ / область оновлення з іншої бази даних SQL Server - .net, vb.net

оновлення поля з іншої бази даних SQL Server - .net, vb.net

Я з невеликою проблемою. В мене є дві бази даних, перша - це Gym а другий - Prod:

Спортзал: ---------------------- Табела наказує: ---------------------- Cod_Product Ім'я -----------------------  Prod: ----------------------- Продукція Табела: ----------------------- Id Ім'я ---------------------- Tabela CodProdutos: ---------------------- Cod_prod id_prod --------------

Потрібне тут оновити поле з таблиці Продукти, що дорівнюють полю Назва замовлення балу в базі тренажерного залу.

Я хочу підключити замовлення столів від тренажерного залу дотаблиця codprodutos з бази даних Prod, а потім підключитися до мого таблиці, що називається Product, таким чином я збираюся оновити рядок у рядок і не давати перший рядок замовлень столу для всіх рядків продуктів.

Чи може хто-небудь допомогти мені?

Відповіді:

1 для відповіді № 1

Оскільки ви використовуєте .NET, ви, ймовірно, також використовуєте SQL Server, тому це має працювати:

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

Якщо ви використовуєте SQL Server, то ви зновумабуть, використовуючи один екземпляр для розміщення обох баз даних. У такому випадку ви зможете використовувати наступний синтаксис, щоб розрізняти таблиці в одному з таких випадків:

<database name>.dbo.<table name>

dbo просто сорт означає "об'єкт бази даних", який може бути таблицею, збереженою процедурою, переглядом, такого роду речі. Отже, якщо ви скажете:

    Prod.dbo.Products

це означає:

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

Часто ви можете отримати це за допомогою простого імені таблиці, оскільки ви часто будете відповідати двом умовам:

  1. Ви тільки переживаєте з однією базою даних за одним запитом.
  2. Ви також використовуєте те, що називається "каталогом за замовчуванням", тобто база даних, яку SQL Server візьме на себе, якщо ви не скажете йому базу даних, до якої слід шукати.

Якщо ви використовуєте каталог за замовчуванням Prod, то SQL Server прийме це:

SELECT * FROM Products

і автоматично ставиться до нього як:

SELECT * FROM Prod.dbo.Products

Ви згадали .NET і VB.NET у тегах для вашого запитання, тому я впевнений, що це SQL Server, який ви використовуєте. У такому випадку, наприклад, IDE або Management Studio або щось може бути як-то автоматичним вибором каталогу за замовчуванням, що не обов'язково говорить вам. Але якщо ви хочете працювати в декількох базах даних в одному запиті, це, ймовірно, затримка, в яку ви запускаєтесь.