OFFSET FETCH - Ограничение выборки в MSSQL

"OFFSET FETCH" это фильтр который позволяет пропустить некоторое количество первых строк в выборке.

Например:

select field1, field2, field3 
from table1
order by field1, field2
offset 100 rows fetch next 50 rows only;

Этот пример вернет строки с 101 по 150, из всех строк отсортированных по field1 и field2.

! Сначала будет произведена сортировка, затем возврат 50 строк.

! Для больших объемов данных этот способ требует много ресурсов, поэтому использовать лучше на минимизированных выборках.

Подробнее

Поиск процедуры по тексту который она содержит (по метаданным) MSSQL

Пример поиска процедуры по тексту который она содержит

SELECT name
FROM   sys.procedures
WHERE  Object_definition(object_id) LIKE '%некоторый_текст%'

Этот скрипт вернет названия всех процедур которые содержат в текст: "некоторый_текст"

Подробнее

Обновление таблицы с условием по второй таблице через JOIN MSSQL

Пример обновления данных в одной таблице с одновременным сопоставлением и проверкой условия по второй таблице при помощи 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 - Вторая таблица с данными которой производится сверка.

Подробнее

Пример выбора некоторого количества пронумерованных записей в MSSQL

Данный пример может быть полезен, когда надо выбрать некоторое количество пронумерованных записей из неоткуда допустим во временную таблицу или табличную переменную.

Пример:

select number as Section from master..spt_values where type='L' and number>0 and number<=100

Пример выводит 100 строк таблицы с значениями от 1 до 100 и единственным столбцом Section.

Подробнее

Пример отлова ошибок в MSSQL

Пример, как отлавливать ошибки в 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 в MSSQL

Добавление записей в таблицу игнорируя 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
Подробнее