Il existe 2 façons de faire assez simples :

Première solution pour Insert or UPdate sous SQL Server 2005

IF EXISTS (SELECT * FROM TABLE WHERE KEY = @KEY)
BEGIN
UPDATE TABLE SET FIELD1 = 'VALUE1', FIELD2 = 'VALUE2', ...
WHERE KEY = @KEY
END
ELSE
BEGIN
INSERT TABLE (KEY, FIELD1,FIELD2, ... )
VALUES ('KEY','VALUE1','VALUE2', ... )
END

Deuxième solution pour Insert or UPdate sous SQL Server 2005

UPDATE TABLE SET FIELD1 = 'VALUE1', FIELD2 = 'VALUE2', ...
WHERE KEY = @KEY

IF @@ROWCOUNT = 0
BEGIN
INSERT TABLE (KEY, FIELD1,FIELD2, ... )
VALUES ('KEY','VALUE1','VALUE2', ... )
END