Нужна помощь с запросом SQL Server - PullRequest
2 голосов
/ 25 февраля 2010

Я планирую приложение для мониторинга, которое будет использовать базу данных SQL Server 2005/08. Он будет контролировать старые серверы, которые используют базу данных SQL Server 2000. Задача инструментов состоит в том, чтобы собирать данные с серверов, делать некоторую статистику и вставлять данные обратно в собственную базу данных инструментов для целей отчетности.

Я использую .NET (C #) в качестве среды разработки.

Что я действительно хотел бы сделать, так это реализовать хранимые процедуры, которые будут собирать данные мониторинга с других серверов и вставлять их в таблицу баз данных инструментов мониторинга.

Теперь я хотел бы знать, возможно ли написать такую ​​хранимую процедуру? Или я должен был бы выбрать данные с серверов в программе, используя одно соединение, а затем вставить их в базу данных инструментов, используя другое соединение?

Пожалуйста, дайте мне знать, если вы можете предвидеть какие-либо осложнения, о которых я должен знать.

Также будут полезны некоторые информативные / полезные ссылки (ссылки, книги).

Спасибо всем за ценные материалы.

Ответы [ 2 ]

4 голосов
/ 25 февраля 2010

Вы можете сделать это с помощью хранимых процедур (если конечно оба сервера могут видеть друг друга), используя Связанные серверы .

После настройки вы можете выполнять запросы к серверам, указав полное имя объекта:

SELECT * FROM [AnotherDbServer].[DatabaseName].[Schema].[TableName]
2 голосов
/ 25 февраля 2010

Ответ AdaTheDev прав, но вот несколько дополнительных указателей.

Убедитесь, что вы дали псевдониму имени таблицы, если вы вызываете определенные столбцы. В противном случае вы получите ошибку из-за слишком большого количества квалификаций (4 - максимум). Кроме того, если вы связаны с экземпляром сервера, убедитесь, что вы используете скобки [] в имени сервера. Например:

SELECT FiscalCalendar.Week, FiscalCalendar.Year
FROM [LinkedServer\Instance].MyDatabase.dbo.FiscalCalendar FiscalCalendar
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...