Muy bien, entonces una pregunta SQL rápida aquí (usando sql-server-2008).Seleccionar SQL o Insertar ID de devolución
Tengo una tabla de asignación names
con las siguientes columnas
ID
DisplayName
Lo que quiero hacer es primero SELECT [ID] FROM [names] WHERE [DisplayName] = 'chuck';
PERO, si el nombre de 'Chuck' no existe en la base de datos, me gustaría crearlo, y devolver el auto incrementado ID
.
Me preguntaba si SQL tenía alguna forma de hacerlo de una manera sencilla, o si tengo que hacer una ruta larga.
ruta larga de ser algo como esto
SELECT COUNT(ID) AS count, ID FROM names WHERE DisplayName='chuck'
IF(count > 0)
SELECT ID as ReturnID;
ELSE
BEGIN
INSERT INTO names(DisplayName) values('chuck');
SELECT scope_identity() as ReturnID;
END
no he probado esta última afirmación, pero supongo que el camino más largo sería algo por el estilo. Si no hay un camino construido, agradecería que alguien simplemente corrija esa afirmación (ya que estoy seguro de que no es completamente correcta).
Si solo admite 200 * +, use la sintaxis [MERGE] (http://technet.microsoft.com/en-us/library/bb510625.aspx) –
¿Podría dar un ejemplo? Estoy tratando de aprender formas más avanzadas de usar sql. –
@ kelton52: hay ejemplos al final del artículo OMG Ponies linked. Tienes que desplazarte un poco hacia abajo. –