(Возврат на основную страницу)

 

Содержание номера за Февраль 2013 год

SQL Server

Февраль 2013 02 (32)

 

  1. Код для получения максимальной даты в поле таблицы
    Кишор Таллапрагада (Kishore Tallapragada)

  2. Преобразование XML в строку с форматированием
    Андрей Солнцев (Andrei Solntsev)

  3. Перечисление всех таблиц и информация о них
    Фернандо Касас Осорио (Fernando Casas Osorio)

  4. Перемещение всех индексированных представлений SQL Server в новую файловую группу
    Аарон Бертранд (Aaron Bertrand)

  5. Эксперименты с типом Varbinary
    Тимоти А. Вайсман (Timothy A Wiseman)


Код для получения максимальной даты в поле таблицы
Кишор Таллапрагада (Kishore Tallapragada)
Запрос следует выполнить, предварительно заменив значение переменной @Datefield на имя того поля, для которого рассчитывается максимальная дата.


Преобразование XML в строку с форматированием
Андрей Солнцев (Andrei Solntsev)

Не так давно мне понадобилось отобразить поле типа XML в отчете. У XML имелось всего несколько меток, но они отличались от строки к строке. Я подумал, что это не будет проблемой, стоит только включить поле в выходной набор и добавить поле в таблицу. Но оказалось, что все не так просто. Оказалось, что SQL server преобразует xml в длинную строку, совершенно нечитаемого вида. Мне же было нужно представить xml так как это делается в Management Studio, только без цветового форматирования.

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



Перечисление всех таблиц и информация о них
Фернандо Касас Осорио (Fernando Casas Osorio)

Приведенный ниже код я создал для получения списка таблиц в БД и подробной информации о занятом месте, индексах различных типов для каждой из них; это полезная информация при необходимости сопровождать рабочие базы данных.

Код протестирован для SQL Server 2005 и 2008 R2. (От редакции. Мы также протестировали его для SQL Server 2012 SP1)



Перемещение всех индексированных представлений SQL Server в новую файловую группу
Аарон Бертранд (Aaron Bertrand)


Проблема
С ростом баз данных часто возникает необходимость добавить новые пути ввода-вывода, чтобы приспособиться к увеличивающемуся пространству. Даже без роста, который требует такого масштаба, все-таки может быть полезно задействовать несколько устройств ввода-вывода, чтобы распределить нагрузку. Один из способов, который позволяет добиться оптимального использования новых дисковых устройств, – это добавление в базу данных файловой группы и перемещение в нее определенных объектов (скажем, всех индексированных представлений). (Фактически, можно было бы создать ситуацию, когда пришлось бы переместить все пользовательские объекты из файловой группы PRIMARY, но я приберегу его для другой публикации.)



Эксперименты с типом Varbinary
Тимоти А. Вайсман (Timothy A Wiseman)
 

Введение
Мне вдруг недавно пришло в голову, что я фактически никогда ни для чего не использовал поле типа binary или varbinary в SQL Server. Полагаю, отчасти это объясняется тем, что случаев, когда применение поля varbinary оказывается наилучшим подходом, немного. По-моему, в большинстве случаев двоичные данные лучше хранить вне базы данных, оставив в БД только данные о местонахождении файла. Как известно, в версиях SQL Server 2008 и старше для того, чтобы хранить данные типа varbinary(max) в файловой системе, можно использовать опцию FileStream.
Поскольку я в самом деле никогда не пользовался такими полями, но хочу иметь исчерпывающее представление о SQL Server, я решил создать несколько сценариев для работы с соответствующими типами и просто посмотреть, как используются данные типа varbinary. Для эффективного их применения, с данными типа varbinary необходимо обращаться не так, как с некоторыми другими типами данных. Большинство других типов данных, используемых в SQL Server, например, int или varchar, могут быть прочитаны человеком, тогда как данные типа varbinary часто необходимо подвергнуть некоторого рода преобразованию, чтобы ими можно было пользоваться.
В этой статье я очень кратко рассматриваю возможные способы использования типа varbinary и привожу пару примеров, чтобы показать, как эти данные можно вставить, прочесть и преобразовать в удобный формат. Данная статья предназначена для начинающих или во всяком случае для тех, кто обладает ограниченным опытом работы с типом varbinary даже при наличии большого опыта работы с SQL. Примеры, рассматриваемые в разделе III, слабо связаны друг с другом, и вы вполне можете рассмотреть только какой-то один из них – для того языка программирования, который предпочитаете. Кроме того, предлагаемые примеры являются довольно искусственными, поскольку составлены исключительно ради того, чтобы продемонстрировать относительную простоту их применения.


(Возврат на основную страницу)