Snippets: DML - Data Manipulation Language

Read more about T-SQL Data Manipulation Language

Basic SELECT Pattern

1
2
3
4
5
6
7
SELECT
    t.col1,
    t.col2,
    t.col3
FROM dbo.MyTable AS t
WHERE t.col1 = 'some value'
ORDER BY t.col2;

SELECT with JOIN pattern

1
2
3
4
5
6
7
SELECT
    a.Id,
    a.Name,
    b.Status
FROM dbo.TableA AS a
JOIN dbo.TableB AS b
    ON b.TableAId = a.Id;

SELECT with GROUP BY / HAVING

1
2
3
4
5
6
SELECT
    Category,
    COUNT(*) AS RecordCount
FROM dbo.Items
GROUP BY Category
HAVING COUNT(*) > 1;

INSERT with SELECT

Data comes from another query

1
2
3
4
INSERT INTO dbo.ArchiveTable (Id, [Name])
SELECT Id, [Name]
FROM dbo.SourceTable AS s
WHERE s.IsActive = 0;

INSERT with values

You already know the data

1
2
INSERT INTO dbo.Users ([Name], Email)
VALUES ('Bob', 'bob@example.com');

UPDATE with JOIN pattern

1
2
3
4
5
6
7
UPDATE a
SET a.Status = b.NewStatus
FROM dbo.TableA a
JOIN dbo.TableB b
    ON b.TableAId = a.Id
WHERE b.IsActive = 1
  AND a.Status <> b.NewStatus;

DELETE with JOIN pattern

1
2
3
4
5
DELETE a
FROM dbo.TableA a
JOIN dbo.TableB b
    ON b.TableAId = a.Id
WHERE b.IsExpired = 1;