Пример поиска процедуры по тексту который она содержит
SELECT name
FROM sys.procedures
WHERE Object_definition(object_id) LIKE '%некоторый_текст%'
Этот скрипт вернет названия всех процедур которые содержат в текст: "некоторый_текст"
Пример поиска процедуры по тексту который она содержит
SELECT name
FROM sys.procedures
WHERE Object_definition(object_id) LIKE '%некоторый_текст%'
Этот скрипт вернет названия всех процедур которые содержат в текст: "некоторый_текст"
Пример выбора диапазона дат:
WITH q AS
(
SELECT 1 AS num
UNION ALL
SELECT num + 1
FROM q
WHERE num < 10
)
SELECT DATEADD(DAY,0,cast(cast(DATEADD(DAY,-num,SYSDATETIME()) as date) as datetime))
FROM q
Пример обновления данных в одной таблице с одновременным сопоставлением и проверкой условия по второй таблице при помощи JOIN:
update cc
set cc.ActivateState=2
from ClientsCards cc
left join ClientsCardsHeads cch
on cch.CardUid=cc.Uid
where cc.ActivateState=0 and cch.State=3
ClientsCards cc - Первая таблица в которой производится изменение.
ClientsCardsHeads cch - Вторая таблица с данными которой производится сверка.
Данный пример может быть полезен, когда надо выбрать некоторое количество пронумерованных записей из неоткуда допустим во временную таблицу или табличную переменную.
Пример:
select number as Section from master..spt_values where type='L' and number>0 and number<=100
Пример выводит 100 строк таблицы с значениями от 1 до 100 и единственным столбцом Section.
Пример, как отлавливать ошибки в MSSQL.
BEGIN TRY
-- Какой нибудь код который вернет ошибку для примера.
SELECT 1/0;
END TRY
BEGIN CATCH
SELECT
ERROR_NUMBER() AS ErrorNumber
,ERROR_SEVERITY() AS ErrorSeverity
,ERROR_STATE() AS ErrorState
,ERROR_PROCEDURE() AS ErrorProcedure
,ERROR_LINE() AS ErrorLine
,ERROR_MESSAGE() AS ErrorMessage;
END CATCH;
GO
Добавление записей в таблицу игнорируя IDENTITY:
-- Включаем
SET IDENTITY_INSERT tableA ON
-- Необходимо задать полный список солей для INSERT:
INSERT Into tableA ([id], [c2], [c3], [c4], [c5] )
SELECT [id], [c2], [c3], [c4], [c5] FROM tableB
-- Вариант "INSERT Into tableA SELECT ........" работать не будет
-- Выключаем
SET IDENTITY_INSERT tableA OFF