Вырезаем числовую часть из начала строки в transact-sql

Имеем сроку, начинающуюся с целого числа, вида 112-ОМГ, желаем вырезать из нее числовую часть. На stackoverflow приводится следующий код Небольшое пояснение к механике его работы. Функция left вырезает левую часть строки с заданным количеством симоволов. Функция pathindex находит начальную позицию … Читать далее

Проблемы с кодировкой при копировании русского текста из MS SQL Studio в Outlook/Word/Office

Забавный глюк внутри семейства Microsoft - при попытке скопировать текст из редактора запросов MS SQL Studio в их же программу вроде Outlook портится кодировка русского текста. ЧСХ, при копировании в любую другую программу вроде бесплатного и открытого Notepad++ все нормально. … Читать далее

Удаляем default-ограничение (constraint) в Transact Sql

Сгенерировать sql код для удаления default-ограничения не зная его имени, но зная таблицу и колонку, можно следующей командой (вынесена в отдельную функцию): Использование функции В принципе можно удалять ограничение сразу How to drop SQL default constraint without knowing its name? … Читать далее

Выборка OleDb из хранимой процедуры возвращает пустой набор строк

Коллега столкнулся с проблемой, при попытке загрузить выборку из хранимой процедуры, с вызовом вида "exec some_procedure" ничего не выбирается, хотя через SQL Management Studio вопрос выполняется без проблем. Решение оказалось несколько неожиданным - в начале процедуры использовать SET NOCOUNT ON … Читать далее

Как проверить, существует ли логин, роль и пользователь базы в MS SQL Server

Задача: проверить, есть ли на сервере соответствующий серверный логин, роль на уровне базы данных, пользователь на уровне базы данных и создать в случае отсуствия. Решение приводится для MS SQL Server 2005 и выше. Существование серверного логина … Читать далее

Выполняем операцию для каждой строки в выборке Transact SQL

Задача: определить, есть ли в выборке несколько идущих подряд строк с определенными значениями, например три строки подряд (если просто три, то задача легко решается) с ненулевым значением числового поля. Задача очень простая в алгоритмических языках, но несколько не очевидная в … Читать далее

Красивая строка даты из datetime в MS SQL Server 2005 и младше

Начиная с MS SQL Server 2008 появляется специальный тип данных для дат. В более ранних версиях можно использовать функцию convert с кучей разнообразных кодов. Памятка для красивой строки даты виды 01.01.2012 CAST and CONVERT (Transact-SQL) … Читать далее

Отслеживаем изменения в таблице с помощью триггеров Transact Sql

Задача: сохранять информацию о всех изменения в определенной таблицы. Наиболее простое решение - создать таблицу, совпадающую по структуре с отслеживаемой и при каждом изменении писать в эту таблицу строку с обновленным состоянием измененной строки. Сделать это можно с помощью триггера, … Читать далее