Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

Commit c589056

Browse files
Merge pull request #391 from EmergentSoftware/dev
Added delete example.
2 parents a1d9f8d + c9bc6cd commit c589056

File tree

1 file changed

+35
-8
lines changed

1 file changed

+35
-8
lines changed

‎docs/findings/SQLCodeDevelopment.md

Lines changed: 35 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -222,30 +222,57 @@ SET NOCOUNT, XACT_ABORT ON;
222222

223223
BEGIN TRANSACTION;
224224

225-
CREATE TABLE #Update (FirstName varchar(50) NOT NULL, LastName varchar(50) NOT NULL);
225+
/***************************************************************
226+
** Create temp table to store the updates
227+
****************************************************************/
228+
CREATE TABLE #Update (
229+
FirstName varchar(50) NOT NULL
230+
,LastName varchar(50) NOT NULL
231+
);
226232

227233
INSERT INTO #Update (FirstName, LastName)
228-
VALUES
229-
('Kevin', 'Martin')
230-
, ('Jean-Luc', 'Picard');
234+
VALUES ('Kevin', 'Martin')
235+
,('Jean-Luc', 'Picard');
236+
231237

238+
/***************************************************************
239+
** Perform Updates
240+
****************************************************************/
232241
UPDATE
233242
P WITH (UPDLOCK, SERIALIZABLE)
234243
SET
235244
P.FirstName = U.FirstName
236245
FROM
237-
dbo.Person AS P
238-
INNER JOIN #Update AS U
239-
ON P.LastName = U.LastName;
246+
dbo.Person AS P
247+
INNER JOIN #Update AS U ON P.LastName = U.LastName;
240248

249+
250+
/***************************************************************
251+
** Perform Inserts
252+
****************************************************************/
241253
INSERT dbo.Person (FirstName, LastName)
242254
SELECT
243255
U.FirstName
244256
,U.LastName
245257
FROM
246258
#Update AS U
247259
WHERE
248-
NOT EXISTS (SELECT * FROM dbo.Person AS P WHERE P.LastName = U.LastName);
260+
NOT EXISTS (
261+
SELECT * FROM dbo.Person AS P WHERE P.LastName = U.LastName
262+
);
263+
264+
265+
/***************************************************************
266+
** Perform Deletes
267+
****************************************************************/
268+
DELETE
269+
P
270+
FROM
271+
dbo.Person AS P
272+
LEFT OUTER JOIN #Update AS U ON P.LastName = U.LastName
273+
WHERE
274+
U.LastName IS NULL;
275+
249276

250277
COMMIT TRANSACTION;
251278
```

0 commit comments

Comments
(0)

AltStyle によって変換されたページ (->オリジナル) /