Los foros del Guille

Si no encuentras respuesta, puedes buscar en el sitio del Guille

Google
 

elGuille.hosting: La oferta avanzada:
.NET 2.0, SQL Server, 4000MB, 30GB transf. por 19.95 Eur al mes

Selecciona el foro y pulsa en mostrar:     Mostrar 
De tu interés (algunos de los avisos publicados)

24/mar/2007
IMPORTANTE Por favor, cuando hagas una consulta, comprueba si te han respondido, y en caso de que la respuesta sea satisfactoria, indicalo pulsando en el botón de que esa respuesta es la correcta. Es lo menos que debes hacer, ya que así más gente sabrá que esa respuesta contestaba a tu duda.
Gracias.

  Foro: Bases.General Cantidad:  Desde:   Hasta:    Aplicar   Responder 
Respuestas a: 56517 - INSERT Incrementar registro en 1
IDAsuntoFechaNick 
56517 INSERT Incrementar registro en 128/06/12 16:18julianjg   
Buenos días, alguien sabe algún comando de INSERT que me incremente el valor del máximo de un registro numérico sin que este sea autoincrement, no lo puedo tener autoincrement por que se repite, por ejemplo INSERT INTO Tabla SET No=(SELECT MAX(No) FROM Tabla)+1 no funciona agradezco la colaboración que me puedan dar.
IDAsuntoFechaNick 
56546 Re: Comando SQL (Resp: 56517)12/07/12 20:02elGuille [MVP]   
Yo no sé cómo hacer eso así de forma directa, pero si que puedes hacerlo leyendo primero el valor y después de incrementarlo asignarlo nuevamente...

   elGuille

[Editado: elGuille [MVP], 12/07/2012 20:03:02]
[elGuille [MVP], 12/07/2012 20:03:52]


Si esta respuesta resuelve tu duda, por favor pulsa en la de este mensaje. Gracias.
IDAsuntoFechaNick 
56789 Re: INSERT Incrementar registro en 1 (Resp: 56517)12/11/12 19:19ovega777   
Si lo que desea es no leer el ultimo valor e incrementarlo en 1, la solución que te ofresco es que hagas un procedimiento almacenado en tu base de datos y en ella grabes los datos e incrementes en el mismo momento para el registro.
Por ejemplo, puedes copiar este código en una nueva consulta y ejecutarla.
Create Procedure Grabar
Declare @CampoId Int
@Campo1 (lo que sea varchar, int6, etc...) si sigues agregando campos para guardar pones una coma.
As
Begin Trans
@CampoId=(Select Max(CampoId) From Tabla)+1
Insert Tabla ( CampoId, Campo1, Campo2 ) Values ( @CampoId, @Campo1, @Campo2 )
End Begin

Para que se ejecute des una aplicación se hace asi.

ObjetoConeccionBaseDeDatos.Execute("Grabar " & Objeto_Campo1 & ", '" & ObjetoCampo2 & "', " & ObjetoCampo3)
si el dato es string se hace como el ObjetoCampo2 y si es numerico, como el ObjetoCampo1 o 3.


Si esta respuesta resuelve tu duda, por favor pulsa en la de este mensaje. Gracias.
IDAsuntoFechaNick 
57849 Re: INSERT Incrementar registro en 1 (Resp: 56517)24/02/15 15:40saurio   
Yo lo cree así

INSERT INTO Tabla
select a.No+(SELECT MAX(b.No) FROM Tabla as b where b.no = a.no),a.campo2,a.campo3,a.etc from tabla as a


Saludos


Si esta respuesta resuelve tu duda, por favor pulsa en la de este mensaje. Gracias.

 
(c) Guillermo 'guille' Som, 2005-2017  - foros.elGuille v1.0.5.3 (23/Mar/2009 14:50 GMT +1)  - (ASP.NET 2.0 v2.0.50727.8762)
 
Usuarios activos: 108 - App. iniciada: 20/11/2017 14:38:06 GMT - La hora GMT del servidor es: 20/11/2017 15:26:46 GMT