Foros del Web » Programación para mayores de 30 ;) » Bases de Datos General » SQL Server »

Identity_insert

Estas en el tema de Identity_insert en el foro de SQL Server en Foros del Web. Hola que tal: tengo una base de datos en mysql conectada con php, ahora tengo que hacer lo mismo en sql server 2000, el problema ...
  #1 (permalink)  
Antiguo 02/02/2007, 12:38
 
Fecha de Ingreso: abril-2005
Mensajes: 124
Antigüedad: 19 años
Puntos: 0
Identity_insert

Hola que tal: tengo una base de datos en mysql conectada con php, ahora tengo que hacer lo mismo en sql server 2000, el problema se me presento a la hora de insertar un registro, ya q manda el error de "identity column in table ''usuarios" can only be specified when a column list is used and identity_insert is on"
creo mi base:
Código PHP:
  $Sql="CREATE TABLE $sql_tabla (
  ID tinyint primary key NOT NULL identity(1,1),
  usuario varchar(20) NOT NULL,
  pass varchar(20) NOT NULL,
  nivel_acceso tinyint NOT NULL default 0);"
;

 
$Sql_usuario="INSERT INTO $sql_tabla VALUES (1,'admin', '21232f297a57a5a 743894a0',0);";

 
$db_conexionmssql_connect("$sql_host""$sql_usuario""$sql_pass") or die (header ("No se pudo conectar con Base de datos"));
 
mssql_select_db("$sql_db");
 
mssql_query($Sql);
 
SET IDENTITY_INSERT usuarios ON;
  
mssql_query($Sql_usuario) ;
 
SET IDENTITY_INSERT usuarios OFF;
echo 
"Instalación satisfactoria de las tablas usuarios y pemex<br><br>"
segun he leido, como estoy generqando un nuevo registro y existe un campo llave, antes de crear ese registro debo asignar al SET IDENTITY_INSERT un ON, lo he hecho, pero me sigue mandando el mensaje, pero la base si se crea, gracias por su ayuda....
  #2 (permalink)  
Antiguo 05/02/2007, 12:42
Avatar de el.patron  
Fecha de Ingreso: febrero-2007
Ubicación: Sevilla (España)
Mensajes: 6
Antigüedad: 17 años, 3 meses
Puntos: 0
Re: Identity_insert

La instrucción "SET IDENTITY_INSERT usuarios ON" va destinada al servidor SQLServer y no la puedes poner como una instrucción PHP, ¡por favor!

Cambia esas dos líneas por
mssql_query("SET IDENTITY_INSERT usuarios ON");
y
mssql_query("SET IDENTITY_INSERT usuarios OFF");

De todas formas, si acabas de crear la tabla, la primera clave que insertes será la que has especificado en el Identity (1,1), o sea, 1, por lo que puedes cambiar el insert y evitarte las líneas anteriores.
Sería algo así:
$Sql_usuario="INSERT INTO $sql_tabla (usuario, pass, nivel_acceso) VALUES ('admin', '21232f297a57a5a 743894a0',0);";

Espero qe te sirva.
  #3 (permalink)  
Antiguo 06/02/2007, 16:09
 
Fecha de Ingreso: abril-2005
Mensajes: 124
Antigüedad: 19 años
Puntos: 0
Re: Identity_insert

gracias por tu ayuda, ya quedo.
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 14:43.