WARNING WILL ROBINSON. (Don that is some pretty terrible code)
That update can leave you with unexpected NULLS.
example:
BEGIN TRAN
DECLARE @foo TABLE (
[val] CHAR(1)
)
INSERT @foo VALUES ('A'),('B')
SELECT * FROM @foo
UPDATE f SET
[val] = CASE WHEN [val] < 'B' THEN 'Z' END
FROM
@foo AS f
SELECT * FROM @foo
ROLLBACK
with results:
val
----
Z
NULL
Also -- don't compare dates with that kind of string!
Also -- OP wanted -100 years, not -1 years.
Probably safer is:
UPDATE
y
SET
YourColumn = DATEADD(yy, -100, YourColumn)
FROM
YourTable AS y
WHERE
YourColumn >= '20000101'
Transact Charlie
Msg 3903.. The ROLLBACK TRANSACTION request has no corresponding BEGIN TRANSACTION.