SQL.RU
 client/server technologies
 Главная | Документация | Статьи | Книги | Форум | Блоги | Опросы | Гостевая | Рассылка | Работа | Поиск | FAQ |
   
#205<<  #206  >>#207

СОДЕРЖАНИЕ

1.СОВЕТЫ
1.1.Как сделать Backup базы на сетевой диск
1.2.SQL Server: соглашения при программировании баз данных, советы и лучшие методики (окончание)
2.ССЫЛКИ НА СТАТЬИ
2.1.Статьи на русском языке
2.2.Англоязычные статьи
3.ФОРУМ SQL.RU
3.1.Самые популярные темы недели
3.2.Вопросы остались без ответа

СОВЕТЫ

Как сделать Backup базы на сетевой диск

Автор: Андрей Натальченко, Академия АйТи
MCSE, MCDBA

Основная проблема размещения файла Backup-a базы данных заключается в том, что средствами Enterprise Manager (EM) невозможно создать устройство резервного копирования при построении через мастер (или так, руками) или при выполнении через EM Backup Database. В этом случае EM видит ТОЛЬКО физически подключенные жёсткие диски и совсем не видит UNC пути.

Обойти эту проблему можно путём создания удалённого устройства резервного копирования:

1. Сначала надо закрыть EM , если он был открыт.

2. Выполнить скрипт

USE master
EXEC sp_addumpdevice 'disk', 'Nw1', '\\London\Backup\Nw1.bak'

Где Nw1 - название удалённого устройства. М.б. названо любым именем
London - имя компьютера
Backup - имя расшаренной папки

Возможно, если не расшаривать заранее папку, пройдёт и такой вариант:

EXEC sp_addumpdevice 'disk', 'Nw1', '\\London\C$\Backup\Nw1.bak'

Запустить EM и выполнять Backup, указывая в качестве удалённого устройства резервного копирования установленное с помощью скрипта имя удалённого устройства. В нашем примере это Nw1.

3. Выполнять Backup в обычном режиме

Вы можете выполнить резервное копирование через несколько сетевых интерфейсных плат. Выполняя резервное копирование данных на несколько устройств через несколько сегментов локальной сети, Вы можете обходить проблемы пропускной способности сети, которые могут ограничивать производительность. В случае резервного копирования данных на несколько компьютерных систем просто укажите имена этих систем. В случае резервного копирования данных на одну систему через два сегмента локальной системы Вы можете указать IP-адрес в UNC-адресе, как это показано ниже:

EXEC sp_addumpdevice 'disk', 'Nw1', '\\100.100.100.1\C$\Backup\Nw1.bak'

EXEC sp_addumpdevice 'disk', 'Nw2', '\\100.100.200.1\C$\Backup\Nw2.bak'

Создав эти устройства резервного копирования, Вы можете копировать на них данные с помощью Enterprise Manager или операторов T-SQL.

[В начало]

SQL Server: соглашения при программировании баз данных, советы и лучшие методики (окончание)

По материалам статьи Vyas Kondreddi: SQL Server Database Coding Conventions, Best Practices and Programming Guidelines
Перевод Виталия Степаненко

- Имейте в виду следующие проблемы, когда используете IDENTITY для генерирования первичных ключей. IDENTITY является очень специфической особенностью SQL Server, и у Вас могут быть проблемы при портировании Ваших приложений на другие системы управления базами данных. Столбцы с IDENTITY имеют и другие проблемы. Например, в некоторых случаях столбцы IDENTITY могут выйти за допустимые пределы в зависимости от выбранного типа данных; числа не могут быть автоматически использованы заново после удаления строк; столбцы с IDENTITY и репликация не всегда хорошо работают вместе. Поэтому используйте алгоритм для генерации первичных ключей в приложении или хранимой процедуре вставки. При использовании собственной генерации первичных ключей также возможны проблемы, такие, как одновременное создание одного и того же ключа или переполнение значений. Поэтому выберите из двух вариантов тот, который Вам больше подходит.

- Минимизируйте использование NULL, т.к. это часто приводит к проблемам в приложениях, если только эти приложения специально не убирают NULL или не выводят NULL в какой-либо другой форме. Любое выражение, используемое с NULL, дает результат NULL. Функции ISNULL и COALESCE могут помочь в обработке значений NULL. Ниже показан пример, иллюстрирующий проблему:

Взгляните на таблицу Customers, которая хранит имена клиентов, и в которой второе (middle) имя клиента может быть NULL.

CREATE TABLE Customers
(
FirstName varchar(20),
MiddleName varchar(20),
LastName varchar(20)
)

Сейчас добавьте клиента с именем Тони Блэр без указания второго имени:

INSERT INTO Customers
(FirstName, MiddleName, LastName)
VALUES ('Tony',NULL,'Blair')

Следующая команда SELECT возвращает NULL вместо имени клиента:

SELECT FirstName + ' ' + MiddleName + ' ' + LastName FROM Customers

Чтобы избежать этой проблемы, используйте функцию ISNULL, как показано ниже:

SELECT FirstName + ' ' + ISNULL(MiddleName + ' ','') + LastName FROM Customers

- Используйте типы данных Unicode, такие, как NCHAR, NVARCHAR или NTEXT, если Ваша база данных предназначена для хранения не только обычных английских символов, но и для других символов, использующихся в мире. Используйте эти типы данных только тогда, когда они абсолютно необходимы, т.к. они занимают в 2 раза больше места, чем типы данных, отличные от Unicode.

- Всегда используйте список столбцов в Ваших командах INSERT. Это помогает избежать проблем, когда меняется структура таблицы (например, когда добавляется или удаляется столбец). Ниже приведен пример, иллюстрирующий проблему.

Возьмем следующую таблицу:

CREATE TABLE EuropeanCountries
(
CountryID int PRIMARY KEY,
CountryName varchar(25)
)

Следующая команда INSERT без указания списка столбцов отлично работает:

INSERT INTO EuropeanCountries
VALUES (1, 'Ireland')

Добавим новый столбец в эту таблицу:

ALTER TABLE EuropeanCountries
ADD EuroSupport bit

Выполним команду INSERT, показанную выше. Вы получите ошибку SQL Server:

Server: Msg 213, Level 16, State 4, Line 1
Insert Error: Column name or number of supplied values does not match table definition.
(Название столбца или количество переданных столбцов не соответствует определению таблицы)

Этой проблемы можно избежать, указав в команде INSERT список столбцов, как показано ниже:

INSERT INTO EuropeanCountries
(CountryID, CountryName)
VALUES (1, 'England')

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

- Всегда обращайтесь к таблицам в одном и том же порядке во всех Ваших хранимых процедурах и триггерах. Это помогает избежать мертвых блокировок (deadlocks). Также существуют следующие способы избежать мертвых блокировок: Делайте Ваши транзакции максимально короткими. Затрагивайте как можно меньше данных во время транзакций. Никогда не ждите ввода данных пользователем посреди транзакции. Не используйте хинты блокировки данных на высоком уровне или ограничивающие уровни изоляции данных, если только они не являются абсолютно необходимыми. Сделайте в Ваших приложениях обработку мертвых блокировок, чтобы эти приложения могли повторить транзакцию в случае, если выполнение предыдущей транзакции прервалось из-за ошибки 1205. В приложениях немедленно обрабатывайте все результаты, возвращаемые SQL Server, чтобы снять все блокировки с обработанных записей.

- Выведите такие задачи, как манипуляции со строками, сложения строк, подсчет количества записей, изменения регистра, изменения типов, и т.д., в приложения, если эти операции потребляют больше ресурсов ЦП на сервере баз данных. Также старайтесь делать первичную проверку данных в приложениях во время ввода данных. Это уменьшает сетевой трафик.

Если Вашей системе предстоит работать с разными системами управления базами данных, то избегайте работать с битами в T-SQL, т.к. такие функции очень специфичны в каждой системе управления базами данных. Более того, использование битовых масок для хранения различных состояний определенного объекта противоречит правилам нормализации.

- Всегда добавляйте параметр @Debug в Ваши хранимые процедуры. Этот параметр может быть типа BIT. Если в этот параметр передается значение 1, то выводите все промежуточные результаты и содержимое переменых, используя SELECT или PRINT, а если передается 0 - ничего не выводите. Это помогает быстро отлаживать хранимые процедуры, т.к. Вам не нужно добавлять и удалять команды PRINT/SELECT до и после возникновения проблем.

- Не повторяйте вызовы функций в Ваших хранимых процедурах, триггерах, функциях и скриптах. Например, Вам может понадобиться длина строковой переменной во многих местах Вашей процедуры, но не вызывайте функцию LEN каждый раз, а вызовите функцию LEN один раз и сохраните результат в переменную для последующего использования.

- Убедитесь, что Ваши хранимые процедуры всегда возвращают значение, показывающее их статус. Стандартизируйте возвращаемые хранимыми процедурами значения для успешного и неуспешного завершения работы процедуры. RETURN должен возвращать только статус выполнения, но не данные. Если Вам нужно возвратить данные, используйте параметры OUTPUT.

- Если Ваша хранимая процедура всегда возвращает результат в виде однострочного набора данных, то лучше возвращайте данные, используя параметры OUTPUT вместо SELECT, т.к. ADO обрабатывает возвращаемые параметры быстрее, чем наборы данных, возвращаемые командой SELECT.

- Всегда проверяйте значение глобальной переменной @@ERROR сразу после выполнения команд манипулирования данными (таких, как INSERT/UPDATE/DELETE), так, чтобы Вы могли откатить транзакцию в случае возникновения ошибки (в случае ошибки значение @@ERROR будет больше 0). Это важно, потому что по умолчанию SQL Server не откатывает все предыдущие изменения в транзакции, если какая-либо команда вызовет ошибку. Такое поведение может быть изменено с помощью выполнения SET XACT_ABORT ON. Переменная @@ROWCOUNT также играет важную роль в определении количества строк, обработанных в предыдущей команде манипулирования данными или выборки данных, на основе чего можно определить, нужно ли выполнить или откатить транзакцию.

- Чтобы сделать команды SQL более читабельными, начинайте каждое выражение с новой строки и делайте отступы, когда требуется. Ниже показан пример такого подхода:

SELECT title_id, title
FROM titles
WHERE title LIKE '%Computer%' AND
title LIKE '%cook%'

- Хотя мы и пережили проблему 2000 года, всегда храните 4-значное значение года в датах (особенно, когда используете столбцы типов cCHAR или INT), а не 2-значное, чтобы избежать путаницы и проблем. Это не является проблемой для столбцов типа DATETIME, т.к. век хранится, даже если вы укажете 2 знака у года. Но всегда лучше указывать 4 знака даже для столбцов типа DATETIME.

- Как и во всех языках программирования, не используйте команду GOTO, или используйте ее редко. Чрезмерное использование GOTO может превратить код в трудно читаемый и трудно понимаемый.

- Не забывайте создавать ограничения на уникальность на Ваших альтернативных ключах.

- Всегда будьте последовательны в использовании верхнего и нижнего регистров в Вашем коде. Если сервер не чувствителен к регистру, то Ваш код будет работать, но может не заработать на сервере, чувствительном к регистру, если в Вашем коде нет последовательности в использовании регистра. Например, если вы создаете таблицу (или базу данных) в SQL Server, которая имеет регистро-зависимый или двоичный порядок сортировки, то все ссылки на эту таблицу должны использовать тот же регистр, который использовался в команде CREATE TABLE. Если в команде CREATE TABLE вы назвали таблицу 'MyTable', а в команде SELECT используете 'mytable', то Вы получите ошибку 'object not found'.

- Хотя в языке T-SQL нет понятия констант (как, например, в языке C), переменные могут выполнять те же функции. Использование в Ваших запросах переменных вместо конкретных значений повышает читабельность и сопровождение Вашего кода. Взгляните на следующий пример:

SELECT OrderID, OrderDate
FROM Orders
WHERE OrderStatus IN (5,6)

Этот же запрос может быть переписан в более читабельный вид, как показано ниже:

DECLARE @ORDER_DELIVERED, @ORDER_PENDING
SELECT @ORDER_DELIVERED = 5, @ORDER_PENDING = 6

SELECT OrderID, OrderDate
FROM Orders
WHERE OrderStatus IN (@ORDER_DELIVERED, @ORDER_PENDING)

- Не используйте порядковые номера столбцов в выражении ORDER BY. В следующем примере второй запрос является более читабельным, чем первый:

SELECT OrderID, OrderDate
FROM Orders
ORDER BY 2

SELECT OrderID, OrderDate
FROM Orders
ORDER BY OrderDate

Ну вот и все, друзья. Я буду обновлять эту статью, когда у меня будет что добавить нового. Мне будут интересны ваши отзывы на нее, так что можете посылать их на мой email. Удачного вам программирования баз данных!

[В начало]

ССЫЛКИ НА СТАТЬИ

Статьи на русском языке

Модели баз данных
Банников Н.А.
Концептуальная модель наиболее полно отвечает потребностям проектирования баз знаний и построена на ряде принципов, которые мы сейчас рассмотрим. Есть две большие области понятий в концептуальной модели. Обе они построены по принципу иерархического дерева. Первая область – это дерево типов данных, вторая – дерево данных. Дерево типов описывает структуру данных дерева данных, поэтому без дерева типов нет никакой логической целостности дерева данных. Для начала, рассмотрим простой пример с телевизионной камерой. Отраженный свет попадает в объектив камеры, там он разлагается на три составляющие: синий, красный, зеленый. Записывая уровень освещенности трех составляющих света 25 раз в секунду, мы можем составить представление об освещенности и отражающей способности предметов, которые мы снимаем. Теперь дадим основные определения.
Реванш встроенных СУБД. Часть первая. Выбор подхода или подход к выбору
Евгений Косенко
В наш век всепобеждающего шествия клиент-серверных архитектур системы управления базами данных (СУБД) приобрели исключительный характер SQL-серверов. В то же время, старые и хорошо проверенные временем технологии встраиваемых СУБД (ВСУБД) как-то незаметно оказались в тени. А ведь именно они в свое время дали толчок к развитию многих программных продуктов...
О хранении рисунков в базе данных
Доцу Виктор
Бывают случаи, когда возникает необходимость в хранении в базе данных различного рода рисунков. Например, фотографий сотрудников для программы отдела кадров.
Добавление отчетов профессионального качества в приложение пользователя на платформе Visual Studio .NET
Эндрю Браст
Генератор отчетов Crystal Reports for Visual Studio .NET предлагает комплексное решение по организации отчетности для .NET-разработчиков, которое полностью интегрируется с такими операционными средами, как Visual Studio .NET IDE и .NET Framework. Crystal Reports поддерживает технологии ADO.NET и XML Web Services, серверные ASP.NET элементы управления и кэширования. Он "бесшовно" интегрируется с Visual Studio .NET Server Explorer, набором инструментальных средств и средой разработки. Crystal Reports имеет богатую модель программирования и располагает гибкими возможностями настройки и развертывания отчетов. Перечисленные основные возможности Crystal Reports, как и другие, рассматриваемые здесь, позволяют выполнять сложную рутинную работу над представлением данных в приложениях пользователя.

[В начало]

Англоязычные статьи

Fixing broken logins and transferring passwords
Neil Boyle
When transferring a database to a new server using backup/restore or detaching and re-attaching database files, the link between server logins and database users almost invariably gets broken. Here we will take a look at why this happens, and what we can do to fix it
Tutorial: Adding Conditional Formatting into Reporting Services
Brian Knight
Last week, we discussed how to create your first report in Microsoft SQL Server Reporting Services. The report we created was a status report on SQL Server Agent jobs. That article can be found here: http://www.sqlservercentral.com/columnists/bknight/designingyourfirstreportinreportingservices.asp. The report we created was from the template and was very crude looking because of it. In this short article, we-re going to look at improving that report and answer a common newsgroup question I see. This week, we-re going to set the rows of the report to alternate colors. In other words, row 1 will have a grey background and row 2 will have a white background. This makes your report much more readable. We-ll also change the color of data based on jobs failing or succeeding
Sorting Retrieved Data from SQL Databases
Ben Forta
In this lesson, taken from Sams Teach Yourself SQL in 10 Minutes, you will learn how to use the SELECT statement's ORDER BY clause to sort retrieved data as needed
Introduction to Data Modeling
Information Technology Services at The University of Texas at Austin
This document is an informal introduction to data modeling using the Entity-Relationship (ER) approach. It is intended for someone who is familiar with relational databases but who has no experience in data modeling. The basic techniques described are applicable to the development of microcomputer based relational database applications as well as those who use relational database servers such as MS SQL Server or Oracle
SQL Server Architecture 101
Buck Woody
It's important to have a solid understanding of how a system works before you try to administer, code, or design it. In North Carolina they tell the story of a young man from a humble farming family who went off to the city to attend college. On his return he walked from the bus station down a dusty road toward home. As he passed by a field, he came across an old family friend leaning on a fence next to a small, scraggly tree
Readying SQL Server for an SMS 2003 Installation
Buck Woody
Installing System Management Server 2003 is a daunting task. Here's how to get started. Microsoft's new flagship product for enterprise desktop management, Systems Management Server (SMS) 2003, has several factors to consider for an installation or an upgrade. If you've looked through all 600-plus pages of the planning guide, you've found there are a myriad of choices to make even in the planning stages
Understanding Microsoft's Platform Strategies
Peter O'Kelly
Making sense of Whidbey/Yukon and Longhorn in a .NET Framework world. The product and strategy floodgates at Microsoft are currently wide open, with a deluge of releases late last year and the unveiling of detailed strategies for the next two waves of platforms and tools at its October Professional Developers Conference (PDC). It's important for enterprise IT planners to assess these product waves not only in the broader context of overall application platform evolution but also relative to Microsoft's .NET strategy, as these waves are much more significant than traditional product updates
MS Access for the Business Environment: "Upsize" MS Access Reports to MS Reporting Services
William Pearson
Many businesses that use MS Access databases eventually push to the limits the multi-user applications they have purchased or developed internally, and find the "upsize" path to MSSQL Server to be attractive. Common scenarios that have driven this sort of upgrade include the desire to avoid disconnecting data from Web servers for the "repair and compact" evolution that becomes familiar to those supporting heavily used MS Access databases. Other scenarios driving upgrades are the sizes that MS Access databases reach, as well as the need to incorporate features and efficiencies that only a larger RDBMS can provide
Microsoft SQL Server 2000 Desktop Engine MSDE
Don Schlichting
This article will explain what the Microsoft Desktop Engine is, as well as when and why to use it. Microsoft application developers have often been faced with the decision of using a database engine they liked, versus an engine that was affordable to ship with the completed product. In many cases, the price point wins, and the database standards are changed to accommodate the lower priced database. However, with the release of the Microsoft SQL Server 2000 Desktop Engine (MSDE), a true transactional database server can be shipped royalty free. Think of MSDE as one more version of SQL Server. Now we have Developer, Enterprise, Standard and Desktop Engine versions. Each version has different requirements and features, but your database code can run unchanged on all versions
Using xp_cmdshell
Gregory A. Larsen
If you have yet to find out about the little extended stored procedure gem known as "xp_cmdshell", then this article is for you. In this article, I will cover what "xp_cmdshell" is and different things you can use it for. If you already know something about "xp_cmdshell" then you might still want to browse this article to find out if there are additional things you might be able do with "xp_cmdshell" that you don't already know
Building a Visual FoxPro Application for SQL Server
Les Pinter
Learn how to build a data access layer to communicate with either DBFs or SQL Server. Even cooler, you'll do it with no code to change when you move from DBFs to SQL tables, and an upsizing wizard to migrate the data for you. Find out how to use a data access layer in FoxPro, which gives you the ability to use DBFs, SQL Server, a WebConnection XML server, or XML Web services
TechEd 2004 Europe coverage : SQL Server 2005 Mobile Edition alias SQL Mobile alias SQL Server CE 3.0 alias Laguna
Kevin Collins
We just participated in an interesting session with Kevin Collins as a speaker: ... who used all forms of word "cool" when talking about this latest mobile product from Microsoft: "it's cool", "it's cooler", "I am working on SQL CE since 1996 but it is the coolest thing", "isn't it cool?", "total coolness in productivity", etc
Get five free SQL Server scripts for novice DBAs
Steven Warren
These five basic scripts can help an IT professional streamline the administration of Microsoft SQL Server. In addition to the scripts below, you can take your SQL Server skills to the next level with our Quick Guide: Network Administrator's SQL Server. This collection of resources addresses some of the pressing concerns facing IT pros responsible for ensuring the performance, availability, and security of their organizations' SQL Server systems
Running SQL Server on Windows Server 2003
In an effort to provide customers with more secure products, Microsoft Windows Server™ 2003 supports only SQL Server 2000 with Service Pack 3 (SP3) or later and MSDE 2000 with SP3 or later. You can also choose to run SQL Server 2000 with SP3 on Microsoft Windows 2000 Server. SQL Server 7.0 and MSDE 1.0 will not be supported on Windows Server 2003. Customers running applications with SQL Server version 7.0 and MSDE 1.0 should consider evaluating and upgrading to SQL Server 2000 and MSDE 2000 respectively with SP3 on Windows Server 2003 to achieve a more secure operating environment
Data Migration - Quickly Inserting New Data
Steve Jones
I recently worked on a data migration project for a friend who was moving from one version of a web application to another. It was a home grown application and also required a complete migration from one database to another, in many cases from a denormalized structure to a very normalized structure. In completing this project, I had to tackle a bunch of different data moves and use a variety of techniques. This series will look at some of the ways in which I moved the data between systems
SQL Server 2000 Security - Part 3 (Service Accounts)
Marcin Policht
In the previous article of this series, we looked into authentication mechanisms used to determine validity of credentials specified by a user connecting to a SQL Server 2000. Now, we are going to explore another topic related to authentication, but on a different level - SQL Server Services accounts - which determine security context in which SQL Server processes operate. In particular, we will review available configuration options and security implications of each for the following services
DBAs take on new role in the enterprise
Robert Westervelt
Arup Nanda, a skilled Oracle DBA consultant, is among those database professionals whose work assignments have changed drastically in recent years.
Avoid using BLOBs to store image data in SQL Server databases
Serdar Yegulalp
Binary large objects, or BLOBs, are freeform data objects in SQL Server that can be put to a variety of uses. One possible application is using BLOBs to store image data. For instance, a Web site with data records pertaining to a particular item could have a table of BLOBs that contain images of items. Some programmers are attracted to the idea of being able to store everything in the database in this fashion, for the sake of convenience and portability. As elegant an idea as it may sound, it's simply not a very good one, and there are several reasons for this.
Composite keys in M:N relationship tables
Rudy Limeback
What is the general procedure for dealing with M:N relationships encountered during the process of database design? Are composite keys always a straightforward solution?
Brief Introduction to Triggers in SQL Server 2000
Mayank Gupta
A trigger is a database object that is Bind to a table. In many aspects it is similar to a stored procedure and are often referred to as a "special kind of stored procedure." SQL Server 2000 greatly enhances trigger functionality, extending the capabilities of the triggers you already know and love, and adding a whole new type of trigger, the "Instead Of" trigger
Accessing OLAP using ASP.NET
Jagadish Chaterjee
This is a quick and easy introduction to OLAP, its architecture, its installation and discusses how to access the OLAP information/data through ASP.NET using VB.NET with a demonstration of a simple web application.

[В начало]

ФОРУМ SQL.RU

Самые популярные темы недели

Новые упражнения на http://sql.ipps.ru
Новость No.2 - FTP SQL.RU
Суррогатные или естественные
Не в меру умный ADODB.Recordset и как с ним бороться.
Как сказать "Beep" из Транзакта ?
СНОВА: SQL Server 2000 растет в памяти вплоть до вылета.
как пользователю одной базы дать доступ к данным другой
Не затираются дифференциальные бэкапы
Как увеличить размер имеющиеся mdf файла ?
Почему ломается репликация?(+)
Пожар! (перестал видеть в EM юзеров)
Мешает instead of delete, а без него - плохо
Размер TempDB
Старые песни о главном
Сохранение данных
Запрос и в нем подзапрос !?
Может ли быть в схеме данных кольцо?
Запрос
Подскажите запрос c MAX и именем DB...
msdb.sysjobschedules

[В начало]

Вопросы остались без ответа

Где в EM и Prof. увидеть "Workstation ID" клиента?
Что нужно для репликации по модему?
Transactional replication with Queued update
Full Text ошибка
Пара вопросов из тесткинга
Desktop соединения
CDROM:\x86\msdes98 - это MSDE в официал 2000 Developer?
изменить режим базы в NORECOVERY
[OffTopic] MSQQL как средство резервного копирования :-)
Шара на BrainBench - давайте посоревнуемся...
Опять дедлоки

[В начало]

#205<<  #206  >>#207
Rambler's Top100 Рейтинг@Mail.ru  Administrator: Обратная связь 
Copyright: SQL.Ru 2000-2013