SQL Console на PowerShell

by Alexey Knyazev 25. ноября 2010 16:10

В качестве ещё одного небольшого приложения на PowerShell я написал небольшой скрипт, который позволит работать с вашими базами данных. Это небольшое самостоятельное Windows-приложение с визуальными формами, которое позволяет писать запросы, а результат запроса можно не долько просматривать в виде удобного GridView, но и применять различные фильтры



[Ещё]

Tags: , , ,

PowerShell | SQL Server

Job Viewer

by Alexey Knyazev 19. октября 2010 00:07



Прошло почти два года, как я выкладывал небольшую самописную утилиту на ITCommunity.RU, позволяющую мониторить выполнение Job`ов сразу на нескольких серверах БД. Я и подумать не мог, что она окажется такой полезной. За это время я получил несколько писем с просьбой обновить её и добавить поддержку SQL Server 2000. И вот наконец-то руки дошли до этой утилиты.



Эта версия поддерживает SQL Server 7.0/2000/2005/2008/2008R2. Если найдете какие-то ошибки, или у вас возникнут пожелания, связанные с доработкой этой программки, то пишите, постараюсь дополнить её полезным функционалом.
[Ещё]

Tags: , , , , ,

SQL Server

xp_logevent2

by Alexey Knyazev 5. октября 2010 23:34


В SQL Server есть интересная расширенная хранимая процедура xp_logevent. Процедура заносит определенное пользователем сообщение в файл журнала SQL Server и в средство просмотра событий Windows Event Viewer. Появилась идея немного расширить возможности этой процедуры, для этого я написал небольшую CLR-сборку, с помощью которой можно работать с журналом ошибок Windows.


Задача новой процедуры, не только заносить событие в журнал, но и просматривать события на сервере. Плюс к этому очень полезным будет возможность очищать журнал.


Записи будут заноситься в отдельный журнал SQLServerLog. Сообщения могут быть одним из 5 типов:



  • Error

  • FailureAudit

  • Information

  • SuccessAudit

  • Warning


Код сборки:

[Ещё]

Tags: ,

SQL Server

Востановление БД из сжатой копии в SQL Server 2000

by Alexey Knyazev 3. октября 2010 15:48

В прошлый раз я писал, как можно организовать автоматическое сжатие резервной копии БД в SQL Server 2000 с помощью бесплатного архиватора 7-Zip, сейчас я покажу процедуру dbo.RestoreArchiveBackup, которая востанавливает из сжатой копии вашу базу данных.


В процедуре 5 параметров:



  • @RestoreCommand - Стандартная команда востановления БД на T-SQL, либо команда Help, которая выводит список параметров архиватора 7-zip

  • @BackupFile Полный путь и имя файла резервной копии, туда мы будем извлекать бэкап из архива

  • @ArchCommand Параметры архиватора, с которыми мы запускаем нашу процедуру

  • @ArchFile Имя файла резервной копии БД в сжатом виде (как сжимать описано в предыдушем посте)

  • @DeleteAfterRestore Флаг - удалять или нет распакованную копию БД после востановления

[Ещё]

Tags: , ,

SQL Server

Компрессия Бэкапа в SQL Server 2000

by Alexey Knyazev 1. октября 2010 01:44

Backup  CompressionСжатие резервных копий было впервые представлено в выпуске SQL Server 2008 Enterprise. Начиная с версии SQL Server 2008 R2, сжатие резервных копий поддерживается в выпуске SQL Server 2008 R2 Standard Edition и всех выпусках с более широкими возможностями. Сжатую резервную копию можно восстановить в любом выпуске SQL Server 2008 и более поздней версии. ( http://technet.microsoft.com/ru-ru/library/bb964719.aspx )

Для сжатия резервных копий в более ранних версиях использовались утилиты 3-их фирм (как правило платные). Но можно найти и бесплатные аналоги, например небольшая утилита от старого участника сообщества Russian SQL Server Club locky ( http://mcp.itcommunity.ru/blogs/rsug/archive/2010/06/28/110674.aspx ).



Можно сказать на коленке накидал небольшую процедуру на T-SQL, которая с помощью хранимой процедуры xp_cmdshell и бесплатного архиватора 7-zip сжимает резервную копию.



Собственно сама процедура dbo.BackupWithArchive

[Ещё]

Tags: , ,

SQL Server

Распарсинг строки с разделителем

by Alexey Knyazev 8. августа 2010 02:03

Как-то я уже писал, как можно разбить строки таблицы на состовляющие ("Разбиваем строки нa слoва"). Но из 4 примеров только 1ый подходил для SQL Server 2000 и ниже. А у меня появилась задача распарсить строки с разделителем в виде запятой и полученные значения занести в отдельную таблицу, как раз в 2000ой версии.


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

[Ещё]

Tags: , ,

SQL Server

Ошибка: Программе установки SQL Server не удалось получить сведения о системной учетной записи ASPNET

by Alexey Knyazev 1. августа 2010 00:21


При установке SQL Server Express возникает ошибка:

Программе установки SQL Server не удалось получить сведения о системной учетной записи для учетной записи ASPNET. Чтобы продолжить, переустановите платформу .NET Framework, а затем снова запустите программу установки SQL Server.



Английский вариант:
SQL Server Setup failed to obtain system account information for the ASPNET account. To proceed, reinstall the .NET Framework, and then run SQL Server Setup again.



Лекарство:

Запускаем CMD:



cd C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727
aspnet_regiis -i


После создания ASPNET-учётной записи, можно повторно запускать установку SQL Server.

[Ещё]

Tags: ,

SQL Server

SQL Server требует постоянно перезагрузку

by Alexey Knyazev 14. июня 2010 00:48

Ошибка с которой и мне пришлось столкнуться, при установке SQL Server либо SP, требовалась перезагрузка, но после перезагрузки сообщение появлялось опять:


Rule "Restart computer" failed.
A computer restart is required. You must restart this computer before installing SQL Server.


Решается проблема достаточно просто, правкой реестра: Находим ветку "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager\PendingFileRenameOperations" и удаляем или переименовываем ключ PendingFileRenameOperations


 


Этого должно быть достаточно, но если и это не поможет, то проделайте теже действия с ключами ещё пары веток реестра:



  • "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet001\Control\Session Manager\PendingFileRenameOperations"

  • "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet002\Control\Session Manager\PendingFileRenameOperations"


После этого можно продолжить установку SQL Server.

[Ещё]

Tags: , ,

SQL Server

Дата прописью

by Alexey Knyazev 14. апреля 2010 21:31

Делал для себя, но возможно ещё кому-то пригодится:

[Ещё]

Tags: ,

SQL Server

Отправка почты SMTP (очередная сборка)

by Alexey Knyazev 7. апреля 2010 13:15

В очередной раз обращаюсь к работе с почтой через CLR-сборки. Я уже описывал, как читать почту по протоколу POP3 и IMAP. Теперь небольшая демонстрация, как отправлять почту через SMTP.


SMTP (англ. Simple Mail Transfer Protocol — простой протокол передачи почты) — это сетевой протокол, предназначенный для передачи электронной почты в сетях TCP/IP.


Для отправки почты в SQL Server 2005 и выше используется Компонент Database Mail.


Компонент Database Mail — это решение уровня предприятия для отправки сообщений электронной почты от компонента SQL Server Database Engine. Используя компонент Database Mail, приложения базы данных могут отправлять почтовые сообщения пользователям. Сообщения могут содержать результаты запроса, а также могут включать файлы из любого сетевого ресурса. Компонент Database Mail спроектирован для надежности, масштабируемости, безопасности и простой поддержки.


А я покажу простенький код сборки для отправки почты, не используя Database Mail.

[Ещё]

Tags: ,

SQL Server