2015-10-14
zelder
2020-12-21
14/10
2015

Шпаргалки по MS SQL



Возврат значений

Возврат при вставке записи
INSERT INTO [MyBase].[dbo].[tTest] (Name, Age)
OUTPUT Inserted.Id
VALUES('Kirill', 35);

Возврат при обновлении поля
UPDATE [MyBase].[dbo].[tTest]
SET [Num] = [Num]+1, [Val2] = 'SomeValue'
OUTPUT INSERTED.[Num]
WHERE [Id]=211;

Возврат при удалении записи
DELETE FROM [MyBase].[dbo].[tTest]
OUTPUT Deleted.[Id]
WHERE [Id]=211;

Дата и время

Передача даты
DECLARE @dateFrom DateTime, @dateMin DateTime;
SET @dateFrom = CONVERT(VARCHAR, '{0}', 112);
SET @dateMin = CONVERT(VARCHAR, '1753-01-01 00:00:00.000', 112);
В коде C#, что-то вроде этого:
DateTime.Today.ToString("yyyy-MM-dd 00:00:00.000")
DateTime.Today.ToString("yyyy-MM-dd HH:mm:ss.fff")


Типы данных

Смена типа данных (без пересоздания таблицы)
ALTER TABLE [TableName] ALTER COLUMN [Price] decimal(16,1)


Поиск по коду

Поиск по тексту (например, название таблицы) в хранимых процедурах (и других)
SELECT DISTINCT
       o.name AS Object_Name,
       o.type_desc
FROM sys.sql_modules m
INNER JOIN sys.objects o ON m.object_id = o.object_id
WHERE m.definition Like '%tTable_Name%';



Постраничный вывод

Описан в статье

Конкатенация данных в запросе по привязанной таблице

Описан в статье

Временные таблицы

Описано в статье

Пересортировка

Описана в статье


.