Каковы некоторые скрытые возможности SQL Server ?
Например, недокументированные системные хранимые процедуры, уловки для выполнения вещей, которые очень полезны, но недостаточно документированы?
ответы
Спасибо всем за отличные ответы!
Хранимые процедуры
- sp_msforeachtable: запускает команду с '?' заменяется на каждое имя таблицы (v6.5 и выше)
- sp_msforeachdb: запускает команду с '?' заменяется на каждое имя базы данных (v7 и выше)
- sp_who2: точно так же, как sp_who, но с гораздо большей информацией для блоков устранения неполадок (v7 и выше)
- sp_helptext: если вам нужен код хранимой процедуры, просмотрите & UDF
- sp_tables: возвращает список всех таблиц и представлений базы данных в области видимости.
- sp_stored_procedures: вернуть список всех хранимых процедур
- xp_sscanf: считывает данные из строки в местоположения аргумента, указанные каждым аргументом формата.
- xp_fixeddrives:: найдите фиксированный диск с наибольшим свободным пространством
- sp_help: Если вы хотите знать структуру таблицы, индексы и ограничения таблицы. Также просмотров и UDFs. Сочетание клавиш Alt + F1
обрывки
- Возвращение строк в случайном порядке
- Все объекты базы данных пользователя по дате последнего изменения
- Только дата возвращения
- Найти записи, дата которых находится где-то внутри текущей недели.
- Найти записи, дата которых произошла на прошлой неделе.
- Возвращает дату начала текущей недели.
- Возвращает дату начала прошлой недели.
- Смотрите текст процедуры, которая была развернута на сервере
- Отбросьте все соединения с базой данных
- Контрольная сумма таблицы
- Контрольная сумма строки
- Удалите все процедуры в базе данных
- Повторно сопоставьте идентификаторы входа после восстановления
- Вызов хранимых процедур из оператора INSERT
- Найти процедуры по ключевому слову
- Удалите все процедуры в базе данных
- Запросите журнал транзакций для базы данных программно.
функции
- HashBytes ()
- EncryptByKey
- Команда PIVOT
Разное
- Дополнительные строки подключения
- TableDiff.exe
- Триггеры для событий входа в систему (Новое в пакете обновления 2)
- Повышение производительности с помощью сохраняемых вычисляемых столбцов (шт.).
- Настройка DEFAULT_SCHEMA в sys.database_principles
- Принудительная параметризация
- Формат хранения Vardecimal
- Выяснение самых популярных запросов в считанные секунды
- Масштабируемые общие базы данных
- Функция фильтрации таблиц / хранимых процедур в SQL Management Studio
- Флаги трассировки
- Номер после
GO
повторения партии - Безопасность с использованием схем
- Шифрование с использованием встроенных функций шифрования, представлений и базовых таблиц с триггерами
sql-server
tsql
Sklivvz
источник
источник
Ответы:
В Management Studio вы можете поставить число после маркера окончания партии GO, чтобы партия повторялась столько раз:
Напечатает 'X' 10 раз. Это может спасти вас от утомительного копирования / вставки при выполнении повторяющихся вещей.
источник
Многие разработчики SQL Server до сих пор не знают о предложении OUTPUT (SQL Server 2005 и новее) в операторах DELETE, INSERT и UPDATE.
Может быть чрезвычайно полезно знать, какие строки были INSERTed, UPDATEd или DELETEd, и предложение OUTPUT позволяет сделать это очень легко - оно предоставляет доступ к «виртуальным» таблицам, вызываемым
inserted
иdeleted
(как в триггерах):Если вы вставляете значения в таблицу, имеющую поле первичного ключа INT IDENTITY, с помощью предложения OUTPUT, вы можете сразу же получить вставленный новый идентификатор:
И если вы обновляете, может быть чрезвычайно полезно знать, что изменилось - в этом случае
inserted
представляет новые значения (после ОБНОВЛЕНИЯ), аdeleted
ссылается на старые значения до ОБНОВЛЕНИЯ:Если будет возвращено много информации, вывод OUTPUT также может быть перенаправлен во временную таблицу или табличную переменную (
OUTPUT INTO @myInfoTable
).Чрезвычайно полезно - и очень мало известно!
Марк
источник
sp_msforeachtable
: Запускает команду с '?' заменяется на каждое имя таблицы. напримерВы можете выполнить до 3 команд для каждой таблицы
Также,
sp_MSforeachdb
источник
Дополнительная строка подключения:
MultipleActiveResultSets = TRUE;
Это позволяет ADO.Net 2.0 и выше считывать несколько наборов результатов только для пересылки и только для чтения на одном соединении с базой данных, что может повысить производительность, если вы много читаете. Вы можете включить его, даже если вы делаете смесь типов запросов.
Имя приложения = MyProgramName
Теперь, когда вы хотите просмотреть список активных соединений, выполнив запрос к таблице sysprocesses, имя вашей программы появится в столбце имя_программы вместо ".Net SqlClient Data Provider"
источник
TableDiff.exe
Ссылка на сайт
источник
Менее известный метод TSQL для возврата строк в случайном порядке:
источник
В Management Studio вы можете быстро получить разделенный запятыми список столбцов для таблицы:
Это удобно, если вы не хотите использовать отвратительный формат, возвращаемый путем щелчка правой кнопкой мыши по таблице и выбора «Сценарий таблицы как ...», а затем «Вставить в ...». Этот прием работает с другими папками, поскольку он дает вам разделенный запятыми список имен, содержащихся в папке.
источник
Конструкторы строк
Вы можете вставить несколько строк данных с помощью одного оператора вставки.
источник
Если вы хотите знать структуру таблицы, индексы и ограничения:
источник
HashBytes () для возврата хеша своего ввода MD2, MD4, MD5, SHA или SHA1.
источник
Выяснение самых популярных запросов
Связь с комнадом
источник
Вкладка «Пространственные результаты» может использоваться для создания рисунков .
введите описание ссылки здесь http://michaeljswart.com/wp-content/uploads/2010/02/venus.png
источник
ИСКЛЮЧИТЬ И ИНТЕРСЕКТ
Вместо написания сложных объединений и подзапросов эти два ключевых слова являются гораздо более элегантным сокращением и удобочитаемым способом выражения намерения вашего запроса при сравнении двух результатов запроса. Начиная с SQL Server 2005, они сильно дополняют UNION, который существует уже несколько лет в языке TSQL.
Концепции EXCEPT, INTERSECT и UNION являются фундаментальными в теории множеств, которая служит основой и основой реляционного моделирования, используемого всеми современными СУБД. Теперь результаты типа диаграммы Венна могут быть более интуитивно понятными и легко генерируемыми с помощью TSQL.
источник
Я знаю, что это не совсем скрыто, но не так много людей знают о команде PIVOT . Мне удалось изменить хранимую процедуру, в которой использовались курсоры, и потребовалось 2 минуты, чтобы запустить быстрый 6-секундный фрагмент кода, который был в десять раз меньше числа строк!
источник
полезно при восстановлении базы данных для целей тестирования или чего-либо еще. Корректно сопоставляет идентификаторы входа в систему:
источник
Отбросьте все соединения с базой данных:
источник
ALTER DATABASE MyDB SET SINGLE_USER WITH ROLLBACK IMMEDIATE
также предотвратит возникновение новых подключений.Контрольная сумма таблицы
Контрольная сумма строки
источник
Я не уверен, является ли это скрытой функцией или нет, но я наткнулся на это и обнаружил, что это полезно во многих случаях. Вы можете объединить набор полей в одном операторе выбора, а не использовать курсор и циклически проходить через оператор выбора.
Пример:
Полученные результаты:
источник
Если вам нужен код хранимой процедуры, вы можете:
(не уверен, что это скрытая функция, но я использую ее все время)
источник
Хитрость хранимых процедур заключается в том, что вы можете вызывать их из оператора INSERT. Я нашел это очень полезным, когда я работал над базой данных SQL Server.
источник
В SQL Server 2005/2008 для отображения номеров строк в результате запроса SELECT:
ORDER BY является обязательным условием. Предложение OVER () указывает SQL Engine сортировать данные по указанному столбцу (в данном случае OrderId) и назначать числа в соответствии с результатами сортировки.
источник
Полезно для анализа аргументов хранимой процедуры: xp_sscanf
источник
Только дата возвращения
или
источник
dm_db_index_usage_stats
Это позволяет узнать, были ли недавно обновлены данные в таблице, даже если в таблице нет столбца DateUpdated.
Код от: http://blog.sqlauthority.com/2009/05/09/sql-server-find-last-date-time-updated-for-any-table/
Информация, на которую ссылаются: SQL Server - Какова дата / время последней вставленной строки таблицы?
Доступный в SQL 2005 и позже
источник
Вот некоторые функции, которые я считаю полезными, но многие люди не знают о них:
Ссылка на сайт
Ссылка на сайт
источник
Найти записи, дата которых находится где-то внутри текущей недели.
Найти записи, дата которых произошла на прошлой неделе.
Возвращает дату начала текущей недели.
Возвращает дату начала прошлой недели.
источник
Не столько скрытая функция, сколько настройка сопоставления клавиш в Management Studio в разделе Инструменты \ Параметры \ Клавиатура: по умолчанию для Alt + F1 используется sp_help «выделенный текст», но я не могу жить без добавления Ctrl + F1 для sp_helptext «выделенный текст»
источник
Сохранялся вычисленным-столбцы
Ссылка на сайт
источник
Бывают случаи, когда нет подходящего столбца для сортировки, или вам просто нужен порядок сортировки по умолчанию для таблицы, и вы хотите перечислить каждую строку. Для этого вы можете поместить «(выберите 1)» в предложение «упорядочить по», и вы получите то, что хотите. Аккуратно, а?
источник
Простое шифрование с EncryptByKey
источник