СОДЕРЖАНИЕ
СОВЕТЫ
SQL Server 2000 DTS. Часть 3. Подключения в DTS Designer
По материалам статьи Marcin Policht:
SQL Server 2000 DTS Part 3 - DTS Designer Connections
В предыдущей статье мы рассмотрели способы создания DTS пакетов с помощью мастеров. Несмотря на
простоту, этот подход имеет некоторые ограничения, которые можно обойти двумя способами, используя
DTS Designer или DTS object model в языках программирования, например, в Visual Basic. Второй из этих
способов позволяет использовать все возможности DTS, но первый более популярен из-за комбинации его
относительно богатых функциональных возможностей и легкости использования. Это также является причиной
того, что автор акцентирует внимание на DTS Designer в этой статье.
DTS Designer можно вызвать из папки Data Transformation Services в SQL Server Enterprise Manager, и он
предоставляет возможность создавать и редактировать DTS пакеты с помощью графического интерфейса.
Пакет состоит из нескольких компонент, таких как подключение, задачи и реализующие бизнес-логику процессы.
Эти компоненты обозначаются соответствующими значками, которые формируют визуальное представление
потока данных и их трансформации. Вы можете легко посмотреть на структуру типичного пакета, открыв
предварительно созданный мастером Export/Import пакет, работу которого мы обсуждали в предыдущей статье
(не забыв, конечно, его сохранить). Для начала, мы более детально рассмотрим первый из компонентов - подключение.
Подключения составляют основную часть любого пакета, так как они обеспечивают доступ к источнику и
получателю данных. DTS осуществляет подключения, используя OLE DB технологию, которая, кроме высокой
производительности, обеспечивает также масштабируемость, позволяющую использовать соответствующие
OLE DB провайдеры для соединения с разнородными источниками данных. Вообще, типы подключений могут
быть сгруппированы по следующим категориям:
- Позволяющие осуществлять прямой доступ через OLE DB провайдера к распространённым базам данных:
Microsoft SQL Server 2000, Microsoft Access 2000, dbase 5, Paradox 5.x.
- Позволяющие получать косвенный доступ через OLE DB провайдера к ODBC драйверам любых поддерживающих
ODBC источников данных (это относится и к Oracle).
- Позволяющие осуществлять доступ к не реляционным источникам данных, например: файлам Microsoft
Excel 97/2000, HTML и текстовым файлам практически любого формата (использующие разграничители полей,
ASCII или UNICODE и т.д.).
Каждый из этих типов подключений представлен отдельным значком интерфейса DTS Designer в разделе Connections.
Свойства каждого типа подключений зависят от OLE DB провайдера. Например, при создании подключения
к SQL Server 2000 будет запрошено имя экземпляра сервера, тип аутентификации (Windows или SQL Server),
имя/пароль пользователя (если была выбрана SQL Server Authentication) и имя подключаемой базы данных.
Также, у Вас есть возможность установить значения для расширенных свойств (нажав кнопку Advanced),
например, "Persist Security Info" (его мы обсудим ниже в этой статье), Application Name или Workstation ID
(которые соответствуют имени хоста и полю program_name в master.dbo.sysprocesses, и весьма полезны при
анализе или поиске проблем исполняющихся на сервере процессов, например, с помощью хранимой процедуры
sp_who2). Для каждого пакета Вы должны использовать уникальные (и желательно выразительные) имена подключений.
Есть и другой способ разбиения на категории разных типов подключений, который основан на сохранённой
информации о подключениях. Суть его в том, что когда Вы добавляете к пакету описанным выше способом
любое из возможных, обозначенных соответствующими значками подключений, оно станет неотъемлемой
частью этого пакета. Параметры подключения (логин и пароль для соединения с источником данных) являются
статическими, даже если пакет скопирован в другое место. Чтобы не менять пакет для корректировки параметров
подключения, можно использовать внешние файлы Microsoft Data Link, которые предоставляют дополнительный
способ хранения информации о подключениях. UDL файлы упрощают работу с пакетами, которые копируются
и исполняются в разных местоположениях данных. Так как параметры подключения будут сохранены в отдельном
файле, отпадает необходимость изменения содержимого пакета. Новые свойства подключения можно просто
сохранить в UDL файле. Ещё одной альтернативой является использование глобальных переменных, задач Dynamic
Properties или сохранённых ActiveX скриптов, которые изменяют свойства подключений с помощью DTS object
model (мы рассмотрим эти методы более подробно в следующих статьях).
Подготовка DTS пакета с внешним UDL файлом выполняется в два шага:
Шаг 1.
Вначале, создаётся UDL файл (без использования Enterprise Manager) - самым простым способом создания
UDL-файла является использование для этого Проводника Windows. В окне Проводника выберите папку, где
Вы хотите сохранить файл, так что бы её содержимое отображалось в области окна. Вызовите контекстно-зависимое
меню, нажав правую кнопку мыши на пустой области окна, и выберите опцию New->Text Document
(Создать->Текстовый документ), или выберите эту опцию в меню File. Придумайте имя файла, и измените его
расширение со значения по умолчанию .TXT на .UDL. Для того чтобы без проблем сменить расширение файла,
признак скрытия последней части имён файлов: "Скрывать расширения для зарегистрированных типов файлов"
(Hide extensions for known file types) должен быть отключён. Эта опция устанавливается на закладки "Вид" (View)
свойств папки, вызываемых из меню "Сервис" (Tools) Проводника. Как только необходимое расширение установлено,
Вы должны увидеть, что иконка файла автоматически измениться и будет отражать его функцию (она будет
похожа на значок Microsoft Data Link в DTS Designer). Теперь Вы можете просто дважды щелкнуть по файлу
или выбрать опцию "Открыть" (Open) в контекстно-зависимом меню UDL-файла. Будет отображено диалоговое
окно мастера "Свойства связи с данными" (Data Link Properties), разделенное на четыре закладки:
Поставщик данных (Provider)
Позволяет выбирать OLE DB провайдера, используемого подключением. Например, выбрав: Microsoft OLE
DB Provider for ODBC Drivers Вы сможете подключать все возможные имена источников данных, определенные
в утилите "Администратор источников данных ODBC" (ODBC Data Source Administrators). Число перечисленных
там провайдеров будет зависеть от того, сколько их установлено на системе, где был создан UDL файл.
Подключение (Connection)
Содержит параметры подключения, которые необходимы указанному ранее OLE DB провайдеру. Это означает,
что параметры на этой закладке зависят от выбора, который был сделан на закладке "Поставщик данных". Здесь
может быть указано местоположение источника данных и варианты аутентификации. Также, Вы можете протестировать
информацию о подключении, нажав кнопку "Проверить подключение" (Test Connection).
"Дополнительно" (Advanced)
Определяет "Уровень олицетворения" (Impersonation level) и "Уровень защиты" (Protection level), время
ожидания подключения (connection timeout) и права доступа (access permissions).
Выдержка из справочного руководства:
|
Уровень олицетворения используется сервером при исполнении роли клиента. Данное свойство не распространяется
на соединения RPC (Remote Procedure Call - вызовы удаленных процедур); а сами уровни представления аналогичны
использующимся в RPC. Значения свойства напрямую соответствуют уровням олицетворения, которые могут
быть указаны для проверенных соединений RPC, но могут применяться и к другим соединениям. Выберите
один из следующих уровней:
- Аноним - анонимное подключение клиента к серверу. Процессу сервера недоступны идентификационные
сведения клиента, поэтому представление клиента невозможно.
-
- Делегирование - при работе от лица клиента, процесс может использовать защищенный контекст клиента.
Кроме того, в этом случае от имени клиента процессом сервера могут осуществляться подключения к другим
серверам.
-
- Идентификация - клиент может быть опознан сервером. Сервер может исполнять роль клиента при проверке
таблицы управления доступом ACL (Access Control List), однако получить доступ к системным объектом как
клиент он не может.
-
- Олицетворение - при работе в качестве клиента, процесс сервера может использовать защищенный контекст
клиента. Сведения могут быть получены только при установленном соединении, но не при каждом вызове.
Уровень защиты относится к данным, передаваемым между сервером и клиентом. Данное свойство не распространяется
на соединения RPC (Remote Procedure Call - вызовы удаленных процедур); а сами уровни защиты аналогичны
использующимся в RPC. Значения свойства напрямую соответствуют уровням защиты, которые могут быть
указаны для проверенных соединений RPC, но могут применяться и к другим соединениям. Выберите один
из следующих уровней:
- Вызов - проверка подлинности источника данных в начале каждого запроса от клиента к серверу.
- Подключение - проверка подлинности данных проводится только при установлении соединения с сервером.
- Не проверяется - подлинность отправляемых на сервер данных не проверяется.
- Пакет - проверка подлинности того, что все полученные данные исходят от клиента.
- Целостность пакета - проверка подлинности того, что все полученные данные исходят от клиента и не были
изменены при передаче.
- Приватность пакета - проверка подлинности того, что все полученные данные исходят от клиента и не
были изменены при передаче, а также защита конфиденциальности данных шифрованием.
Время ожидания подключения - это время (в секундах), в течение которого поставщик OLE DB ожидает завершения
инициализации. По истечении этого времени соединение установлено не будет и возникнет ошибка.
Выберите также одно или несколько прав доступа:
- Read - только чтение.
- ReadWrite - чтение и запись.
- Share Deny None - никому не отказывать ни в чтении, ни в записи.
- Share Deny Read - запретить всем работу в режиме чтения.
- Share Deny Write - запретить всем работу в режиме записи.
- Share Exclusive - запретить всем работу в режиме чтения/записи.
- Write - только запись.
|
Все (All)
Представляет полный список свойств, как доступных на предыдущих трёх закладках, так и дополняющие их
свойства подключения. Это уже упомянутое "Persist Security Info", "Workstation ID" или "Application Name"
при использовании SQL Server OLE DB Provider.
Обратите внимание, что UDL - это обычный текстовый файл, так что вся его информация может быть легко
прочитана, и это необходимо учитывать с точки зрения обеспечения информационной безопасности.
Шаг 2.
Далее, в SQL Server Enterprise Manager средствами интерфейса DTS Designer нужно создать ссылку на UDL
файл, созданный в первом шаге. Для этого, кликните по значку Microsoft Data Link в области окна Connection.
Должно появится диалоговое окно Connection Properties, в котором Вы должны определить новое имя подключения
и указать существующий UDL файл. Тут же Вы можете внести изменения в информацию о подключении,
нажав кнопку "Properties…" (после чего будет отображено то же самое диалоговое окно Data Link Properties,
какое Вы видели при создании UDL файла в Проводнике). Для достижения нашей цели и упрощения переносимости
пакета, Вы должны выбрать первую опцию (New connection) и использовать кнопку Browse (обозначенную
троеточием) для указания расположения созданного ранее UDL файла. Обратите внимание на то, что вторая
опция (Existing connection) явно указывает, что UDL информация может быть внедрена в пакет (при выборе
этой опции, Вы увидите такое же диалоговое окно Data Link Properties, какое было при открытии UDL файла
в Проводнике). Фактически, Вы можете в пакете кэшировать информацию, содержащуюся во внешнем UDL
файле. Для этого, Вам необходимо включить чек-бокс "Always read properties from UDL file". Если этого не
сделать, параметры подключения будут загружены из внешнего UDL файла во время разработки пакета, и
если Вы захотите их изменить, это можно будет сделать в DTS Designer (или программным путём). Когда же
чек-бокс установлен, ссылка на UDL файл будет всегда происходить при установке подключения (это именно
то, что мы и хотели получить).
При использовании UDL файлов, одним из важных вопросов обеспечения безопасности является то, что
внутри этих файлов вся информация (включая пароли) хранится в не зашифрованном виде, в обычном текстовом
формате. Чтобы упростить решение этой проблемы, Вы можете использовать Windows Authentication, при
который не требуется, чтобы учётная информация логина была сохранена, и вместо этого используется контекст
безопасности пользователя, который зарегистрировался в системе для исполнения пакета (или учетной записи
SQL Server Agent, если пакет запущен заданием SQL Server).
Другой проблемой безопасности, которая возникает при любом защищённом подключении, является тот факт,
что по умолчанию, информация об аутентификации при подключении к источнику данных кэшируется DTS
пакетом. Управлять кэшированием можно путём изменения параметра Persist Security Info, доступного в
диалоговом окне Advanced Connection Properties. Мы уже упоминали эту опцию при рассмотрении мастера
"Свойства связи с данными" и его закладки "Все". Persist Security Info принимает два возможных значения:
True - разрешающее кэширование, и False - запрещающее его.
По умолчанию, при редактировании свойств подключения DTS Designer пытается проверять доступность
подключения. Иногда это не желательно, например, если источник данных не всегда может быть доступен в
момент редактирования пакета. Что бы выйти из этого положения, Вы можете применить опцию Disconnected
Edit, доступную из меню Package в DTS Designer. Выбор этой опции приведёт Вас в диалоговое окно Edit All
Package Properties, в котором, помимо подключений, Вы сможете без автоматической проверки изменить задачи,
шаги и глобальные переменные пакета.
Ещё одним моментом, который нужно учитывать при настройке подключений, является параллельная обработка
задач в DTS пакете. Такие задачи могут одновременно обращаться к одному и тому же источнику данных, но
в этом случае Вы должны убедиться, что все эти задачи используют отдельные объекты подключения. Обратите
внимание, что этим не подразумевается использование отдельных UDL файлов, т.к. один UDL файл обеспечит
несколько подключений Microsoft Data Link в DTS пакете (UDL файл содержит только информацию о подключении,
и не является в DTS объектом подключения).
В следующей статье мы сделаем краткий обзор DTS задач, которые являются компонентами трансформации
данных.
[В начало]
ССЫЛКИ НА СТАТЬИ
Статьи на русском языке
Применение
технологии Хранилищ данных и OLAP в торговле
InfoCity
OLAP: В
настоящее время все больше возрастает ценность достоверной и качественной
информации. Именно ее можно получить при помощи стандартных инструментов BI:
технологии Хранилищ данных, data mining и OLAP. Детальное рассмотрение
задач, стоящих перед различными торговыми организациями, позволяет сделать
вывод о том, что BI может сыграть ключевую роль при решении практически
любой такой задачи. Использование BI может дать достаточно неожиданные
результаты при анализе потребительского поведения, помогая таким образом
учесть меняющиеся предпочтения клиентов. С точки зрения закупок,
использование BI позволит торговым организациям выявить наиболее надежных
поставщиков. Это помогает лучше понять структуру МПЗ
(материально-производственных запасов) и ее динамику. Осуществляя
обработ...
Основы языка
SQL
Ю.М. Носков
SQL: SQL (обычно произносимый как "СИКВЭЛ" или
"ЭСКЮЭЛЬ") символизирует собой Структурированный Язык Запросов. Это - язык,
который дает Вам возможность создавать и работать в реляционных базах
данных, являющихся наборами связанной информации, сохраняемой в
таблицах...
Теоретические
основы реляционных баз данных
Alf
SQL: Как уже упоминалось в предыдущей статье, на поверхностном уровне
реляционную базу данных можно представить себе как набор взаимосвязанных таблиц, содержащих данные. (К
слову сказать, ранние примитивные реляционные СУБД, некоторые из которых дожили и
до настоящего времени, по сути таковым набором и являются; средства, которые
превращают реляционную БД из набора таблиц в мощное средство хранения и
обработки данных, в них отсутствуют и должны реализовываться разработчиком
приложения самостоятельно)...
[В начало]
Новые и обновлённые технические статьи Microsoft
"The Engine Components and Client Components Features Require Microsoft .Net Framework" Error Message When You Run SQL Server Notification Services 2.0 Setup
"XACT_E_NOENLIST" error message in DTC and SQL Server
A Complex Query Is Not Successful on a Server That Has More Than 2 GB of Memory
A Floating Point Exception Occurs During the Optimization of a Query
A Query That Uses a View That Contains a Correlated Subquery and an Aggregate Runs Slowly
BUG:
Documentation error in the "Reinitializing a Subscription" topic in SQL Server CE 1.1 Books Online
BUG:
Error Message: "The colv1 parameter is shorter..." Occurs When Replicated Column is Updated
BUG:
Parent referential integrity triggers are not generated when you use Visio to generate a SQL Server 2000 database
BUG:
Snapshot Failures Occur When You Use an Alternate Snapshot Folder or FTP and the First Article is Dropped from the Publication
BUG:
SQL Server Agent Job with E-Mail Notification Option Stops Responding When Microsoft Exchange Server is Not Available
BUG:
SQLServer:Databases Performance Counters Limited to First 99 Databases in Windows System Monitor
Change
in SQL Server 2000 for queued updating subscriptions that use Message Queuing
DTS
Package Fails with Dynamic Properties Task and OLAP Processing Task
HOW
TO: Author MSDE 2000 Setup Packages by Using Visual Studio .NET
HOW
TO: Configure Security for Log Shipping
HOW
TO: Enable Replication Agents for Logging to Output Files in SQL Server
HOW
TO: Get Started with Microsoft JDBC
HOW
TO: Manage the SQL Server Desktop Engine (MSDE 2000) by Using the Osql Utility
HOW
TO: Perform a SQL Server 7.0 Distributed Query with OLAP Server
HOWTO: Connect to a SQL Server 2000 Named Instance with JDBC
HOWTO:
Retrieve @@IDENTITY Value Using JDBC
HOWTO:
Upgrade an Instance of Microsoft SQL Server 2000 Desktop Engine to SQL Server 2000 Service Pack 3
HOWTO:
Use Kerberos Authentication for Microsoft SQL Server 2000 Analysis Services
INF:
How to Upgrade SQL Server 6.5 and 7.0 to SQL Server 2000 (White Paper)
INF:
SQL Server 2000 Release A Replaces SQL Server 2000
OLE
DB Conversion Errors May Occur After You Select a Literal String That Represents Datetime Data as a Column
PRB:
E_UNEXPECTED Returned from IRowsetChange::DeleteRows Without Releasing ISequentialStream Pointer
PRB:
MDAC 2.6/2.7 Roll Back Installation or Get Error on Install
PRB:
Row Size May Increase After the Datatype of a Column Is Altered
PRB:
SQL Server Comparisons Between Columns and Constants with Different Data Types
PRB:
SQL Server does not finish execution of a large batch of SQL statements
Some
Named Pipes Features Are Not Disabled After You Disable the Named Pipes Protocol
SQL
Server 2000 High Availability Series Chapter Discusses a Configuration That Is Not Supported
Support
for SQL Server 2000 on iSCSI technology components
The
Table Info tab in the Taskpad view reports zero rows for some non-empty tables in SQL Server 2000
Why
the SQL Server Optimizer Uses a Nonclustered Index Instead of a Clustered Index
You
Cannot Install SQL Server 2000 SP3 on the Korean Version of SQL Server 2000
You
receive a "Move data process" error message when you try to install Analysis Services SP1 or Analysis Services SP2
You
receive a "SuperSocket info: Failed to get Exclusive port use" error message when you start an instance of SQL Server 2000
You
receive error 16805 when you run the sp_makewebtask system stored procedure
[В начало]
Англоязычные статьи
Control your SQL Server 7.0 and 2000 via E-Mail
Muthusamy Anantha Kumar
Data Base Administrators are often exposed to a situation where they want to query a table, check on the status of
a server, check an error log or run a DBCC command on a SQL Server box when they do not have access to the box
directly. This often happens when they are off site or on vacation or they do not have remote clients etc., but have
access to the Internet
Introducing ADO.NET and the Typed DataSet
Thom Robbins
Several weeks ago, I met with the CIO and development staff of a local customer. We discussed their current development
strategies and project load. In the last several years they had developed several Visual Basic 6 and ASP based applications
that had been extremely successful and represented the core application infrastructure for the business. These applications
had become so successful that the business users had recently requested several new applications and pretty substantial
enhancements to their existing applications. In reviewing these new requirements the CIO had made the decision that
it was quicker and easier to rebuild the applications using .NET and design them using a Service Oriented Application
approach
Using Bits to Store Data
David Poole
I was recently asked to look at a project to record and profile answers from a multiple-choice questionnaire. The idea
was that the questionnaire creator would be able to specify their ideal respondent profile and that the system would
be able to provide a list of best match respondents. There could potentially be many thousands of respondents. A
cursory glance suggested that the project was simple but as the details of the requirements were revealed it was
quickly realised that the project was going to be more involved than first thought
Use Globally Unique Identifiers in Access and SQL Server
Susan Sales Harkins
When your business outgrows your database systems, using globally unique identifier (GUID) values in Access
and SQL Server can offer a timely solution. Globally unique identifiers (GUIDs) distinguish hardware, software, and
users. Originally, Microsoft designed the GUID value for use with ActiveX controls; Windows uses a 128-bit GUID
to identify ActiveX controls. A 48-bit version generates an Ethernet adapter address. Because no two systems should
have the same Ethernet adapter address, a GUID based on your computer shouldn't be duplicated on any other
computer. To assure this precaution, a GUID datatype produces unique values using the time and address of your
network card to ensure that no other computer can generate the same values
Creating a Web Service
Rich Rollman
Use SQLXML 3.0 to expose your stored procedures as Web services. Editor's Note: Beginning this month, Exploring
XML is transitioning from a question-and-answer format to a subject-based column, complemented by occasional
questions and answers. You'll still find the same in-depth XML information, including plenty of code samples and
practical information about how to use SQL Server XML technologies to build applications. Please submit your
suggestions for future column topics and your questions to xmlquestions@sqlmag.com
Indexing Strategies
Ramesh Gummadi
When we run a query, the choice of whether to use an index or not is decided by the query optimizer. Using
appropriate indexes on tables so that the query optimizer chooses the most efficient strategy can yield significant
performance gains . We will try to examine a few scenarios to familiarize ourselves with the way indexes are used
to retrieve data and also try to figure out which index clustered or non clustered is good on each occasion
Alternate way to find database size
Robert Oliver
I like the concept of Madhusudan Naidu Gundapaneni's tip, Find the size of every database. This is a simple variation
on his theme that slits out the log and data file sizes
Alert! Alert! Backup and Restore Baby!
Jeremy Kadlec
At many organizations I doubt red lights flash with the sound of blaring sirens when backups fail in production
environments, but I believe at every organization backups are one of the most critical IT functions. Of all backups,
database backups, by most accounts, are considered the most critical. I know this is certainly true for me as a SQL
Server DBA. I am sure at one point in all of our careers we were too busy to check all of our backups across all SQL
Servers, with a million responsibilities on a daily basis. I know some of us were lucky and made it unscathed, while
others were not so lucky with backup failures that caused extensive data loss and long downtimes. Now when IT
Departments are forced to “do more with less,” it is time to put the necessary SQL Server Alerts in place for backup
and restore operations in order to more easily monitor and streamline this critical process
Query Analyzer Tricks
Steve Jones
Have you ever tried to query a table that had a wide column, like a description field for some product or customer
and been frustrated by seeing only part of the result in query analyzer? Ever wonder why this is? Read on
Compressed Backup of SQL Server 6.5, 7.0 and 2000 on Windows 2000
Muthusamy Anantha Kumar
DBAs are always running out of hard disk space when handling large databases such as data-warehouse databases
and other VLDB. Backing up such databases to disk occupies more disk space, since Microsoft SQL Server does
not have compression built into the backup process. SQL Server customers usually go for third party compression
utilities such as PKWare, Winzip, SQLZip, etc. In this article, I am going to walk you through using the Windows
2000 archiving feature for compressing database backups
Using SQL Server's CHARINDEX and PATINDEX
Gregory A. Larsen
If you have written many applications then you probably have run across situations where you need to identify if
a specific character or set of characters appears in a string. In this article I will discuss using the CHARINDEX and
PATINDEX functions to search text columns and character strings. I will show you how each of these functions
operate, and explain the differences between them. Also provided are some examples on how you might consider
using these functions to solve a number of different character search situations
RC4 Encryption in a Stored Procedure
Joseph Gama
These are stored procedures and functions to encrypt/decrypt data using the RC4 or Rijndael encryption algorithm.
This is an interesting and useful example of calling COM objects with TSQL
[В начало]
ФОРУМ SQL.RU
Самые популярные темы недели
Кто на чем пишет клиентов под SQL Server?
Новые упражнения на http://sql.ipps.ru
Tool Вы знаете что твориться на ваших 10-30+ серверах ?
Триггер
Нужно ваше мнение по железу
SELECT с ограничением количества возвращаемых значений
книга "The Guru's Guide to SQL Server Stored Procedures, XML, and HTML"
Недостатки MSSQL
Шифрование объектов DB
убей двойника 2 (продолжение)
Не, ну вы только посмотрите! (немало)
sql 2000 восстановление базы
что лучше исп. select Count().. или exists(...) для проверки
Имеет ли смысл экономить int->tinyint ?
Как расшифровать название DTS-пакета (из Dtsrun)
Отключить SQL Mail
Помогите, плз, кто знает ...
курсор vs функция
Кто-нибудь видел такой Exception???
Запуск процедуры через промежутки времени
[В начало]
Вопросы остались без ответа
Replication in cluster environment problem
Constraint
настройка удалённого доступа для КПК
OLEDB репликация!
Помогите с запросом
Права на SET IDENTITY_INSERT smth ON -> в Instead of Trigger'е
Новый 70-228
Как использовать сборку в unmanaged C++
SQL Server Magazine и MSDN Magazine
Как получить идентификатор только что добавленной записи записи ?
[В начало]