Como setear el Valor identity inicial de una tabla ?

21/09/2005 - 16:03 por Gabriel S. | Informe spam
Hola, despues de hacer un drop table, el identity de una tabla se pone a 1,
como puedo mediante un comando sql setear ese valor incial para, digamos
100??
Se que se puede, pero no me acuerdo... :(

Gracias,

Preguntas similare

Leer las respuestas

#1 Harold Crow
21/09/2005 - 16:17 | Informe spam
este ejemplo te sirve si vas a crear la tabla, pero si ya la tienes hecha,
lo que puedes hacer, es primero cambiar la propiedad IDENTITY de la tabla
dejandola, sin ella, luego de esto, agregas un registro con el numero 99 en
el campo que corresponderia al identity, luego vuelves a poner el IDENTITY
en el campo, y el siguiente registro sera el numero 100...


"Andre Hass" escribió en el mensaje
news:%238Se$
See this sample

create table tab1
( cod int not null IDENTITY(100,1),
descr char(10) not null)

"Gabriel S." wrote in message
news:
Hola, despues de hacer un drop table, el identity de una tabla se pone a
1,
como puedo mediante un comando sql setear ese valor incial para, digamos
100??
Se que se puede, pero no me acuerdo... :(

Gracias,







Respuesta Responder a este mensaje
#2 Alejandro Mesa
21/09/2005 - 17:10 | Informe spam
Gabriel,

Si haces "drop table", entonces debes setear el valor de la semilla (seed),
lo caul puedes hacer desde EM o en la sentencia "create table" usada, como
especifico Andres. No es necesario hacer "drop table", puedes usar la
sentencia "truncate table" la cual elimina todas las filas de la tabla y
reinicializa el valor de la columna identiy de acuerdo a la semilla usada en
su creacion. Si la tabla es referenciada por alguna clave foranea, entonces
no puedes usar "truncate table" sino que debes usar la sentencia "delete", la
cual no reinicializa la columna identity y por lo cual deberas usar "dbcc
checkident" para reinicializar la columna identity.

Ejemplo:

create table t1 (
c1 int not null identity(100, 1) unique
)

insert into t1 default values
insert into t1 default values
insert into t1 default values

select * from t1

select
ident_seed('t1') as semilla,
ident_incr('t1') as incremento,
ident_current('t1') as ultimo_valor

truncate table t1

select
ident_seed('t1') as semilla,
ident_incr('t1') as incremento,
ident_current('t1') as ultimo_valor

insert into t1 default values
insert into t1 default values
insert into t1 default values

select * from t1

select
ident_seed('t1') as semilla,
ident_incr('t1') as incremento,
ident_current('t1') as ultimo_valor

delete t1

select
ident_seed('t1') as semilla,
ident_incr('t1') as incremento,
ident_current('t1') as ultimo_valor

dbcc checkident('t1', reseed, 100)

select
ident_seed('t1') as semilla,
ident_incr('t1') as incremento,
ident_current('t1') as ultimo_valor

drop table t1
go


AMB

"Gabriel S." wrote:

Hola, despues de hacer un drop table, el identity de una tabla se pone a 1,
como puedo mediante un comando sql setear ese valor incial para, digamos
100??
Se que se puede, pero no me acuerdo... :(

Gracias,




Respuesta Responder a este mensaje
#3 Andre Hass
21/09/2005 - 20:08 | Informe spam
See this sample

create table tab1
( cod int not null IDENTITY(100,1),
descr char(10) not null)

"Gabriel S." wrote in message
news:
Hola, despues de hacer un drop table, el identity de una tabla se pone a
1,
como puedo mediante un comando sql setear ese valor incial para, digamos
100??
Se que se puede, pero no me acuerdo... :(

Gracias,



Respuesta Responder a este mensaje
#4 Gabriel S.
22/09/2005 - 15:38 | Informe spam
Gracias por la ayuda!!

Voy a experimentar varios metodos.

Gabriel.


"Harold Crow" wrote in message
news:
este ejemplo te sirve si vas a crear la tabla, pero si ya la tienes hecha,
lo que puedes hacer, es primero cambiar la propiedad IDENTITY de la tabla
dejandola, sin ella, luego de esto, agregas un registro con el numero 99


en
el campo que corresponderia al identity, luego vuelves a poner el IDENTITY
en el campo, y el siguiente registro sera el numero 100...


"Andre Hass" escribió en el mensaje
news:%238Se$
> See this sample
>
> create table tab1
> ( cod int not null IDENTITY(100,1),
> descr char(10) not null)
>
> "Gabriel S." wrote in message
> news:
>> Hola, despues de hacer un drop table, el identity de una tabla se pone


a
>> 1,
>> como puedo mediante un comando sql setear ese valor incial para,


digamos
>> 100??
>> Se que se puede, pero no me acuerdo... :(
>>
>> Gracias,
>>
>>
>>
>
>


Respuesta Responder a este mensaje
#5 Salvador Ramos
22/09/2005 - 17:08 | Informe spam
Hola,

Otra alternativa, que a mi parecer es más simple, es que hagas un TRUNCATE
TABLE y después pongas el valor de Identity que desees con DBCC CHECKIDENT.

Un saludo
Salvador Ramos
Murcia - España
[Microsoft MVP SQL Server]
www.helpdna.net (información sobre SQL server, Windows DNA y .NET)

"Harold Crow" escribió en el mensaje
news:
este ejemplo te sirve si vas a crear la tabla, pero si ya la tienes hecha,
lo que puedes hacer, es primero cambiar la propiedad IDENTITY de la tabla
dejandola, sin ella, luego de esto, agregas un registro con el numero 99
en el campo que corresponderia al identity, luego vuelves a poner el
IDENTITY en el campo, y el siguiente registro sera el numero 100...


"Andre Hass" escribió en el mensaje
news:%238Se$
See this sample

create table tab1
( cod int not null IDENTITY(100,1),
descr char(10) not null)

"Gabriel S." wrote in message
news:
Hola, despues de hacer un drop table, el identity de una tabla se pone a
1,
como puedo mediante un comando sql setear ese valor incial para, digamos
100??
Se que se puede, pero no me acuerdo... :(

Gracias,











email Siga el debate Respuesta Responder a este mensaje
Ads by Google
Help Hacer una preguntaRespuesta Tengo una respuesta
Search Busqueda sugerida