SQLServer sur la mise à jour existante

Nous prévoyons de convertir une application de Sybase SQL Anywhere vers SQL Server.

Chez SA, nous utilisons beaucoup de "sur la mise à jour existante", qui vérifie par key primaire, si la ligne existe. Si vrai, est mis à jour (de la même manière si j'exécutais la clause de mise à jour). Sinon, il insère.

Est-ce que SQL Server prend en charge quelque chose comme ça?

AFAIK il n'y a aucun support pour ceci dans une command. Et le meilleur moyen que j'ai trouvé était de suivre le conseil de Jeremiah Clark : essayer de mettre à jour, puis vérifier le nombre d'loggings affectés. Si c'était zéro, alors j'insère:

UPDATE Table1 SET (...) WHERE Column1='SomeValue' IF @@ROWCOUNT=0 INSERT INTO Table1 VALUES (...) 

Si vous utiliserez SQL Server 2008 et les versions ultérieures, vous pouvez utiliser la command MERGE. Vous pouvez find la description ici:

http://technet.microsoft.com/en-us/library/bb510625(SQL.100).aspx

Si vous utilisez un SQL plus ancien, la solution de Jeremiah Clark suggérée par Erick Sasse ira bien.

SQL Server possède toutes les fonctionnalités d'un SGBDR haut de gamme, de procédures stockées, de triggersurs, d'UDF et ainsi de suite … comme vous le savez probablement, MS SQL Server a été dérivé directement de Sybase pour avoir des racines communes.

Je ne suis pas sûr d'avoir complètement votre question, bien sûr vous pouvez avoir une instruction SQL qui contient une certaine logique et fait INSERT ou UPDATE selon certaines conditions ou si un logging a déjà été trouvé, TSQL est le dialecte SQL de SQL Server et prend en charge cette et beaucoup plus.

Si vous avez vraiment une question spécifique ou un doute sur une déclaration s'il vous plaît nous montrer votre déclaration comme vous l'avez maintenant en SA.