2012-06-20 61 views

Respuesta

23

seguir los siguientes pasos: -

1) eliminar .Firstly datos antiguos de la tabla.

2). Utilice ALTER TABLE dbo.tbltest
ALTER COLUMN ID varchar(200)

3). Ahora, de nuevo ALTER TABLE dbo.tbltest
ALTER COLUMN ID uniqueidentifier

Para que quede claro, no se puede convertir una columna de numérico para UNIQUEIDENTIFIER directamente,

pero se puede convertir numérico -> varchar -> uniqueidentifier.

4

Es necesario añadir la primera columna (posiblemente con una predeterminado o nulable para que la columna se pueda agregar correctamente a las filas con datos existentes), actualícela a los valores que desee o necesite, cambie las claves (si es una clave principal, cámbiela a la nueva columna y luego cambie cualquier claves de esta mesa), luego elimine la columna anterior y modifique la nueva columna según sea necesario (p. establecer semilla de identidad, eliminar nullable, etc.).

+0

Ya había borrado todos los datos de la tabla. – Visions

+0

Ya veo. En ese caso, también puede modificarlo a 'binary (16)' primero y luego a 'bigint' - no probado, pero por lo que recuerdo SQL Server lo permite, siempre y cuando no se trunquen los datos en el proceso. – Lucero

3

Nota para las personas que utilizan Entity Framework:
Obviamente, si usted tiene una gran base de datos con relaciones complejas, dejando caer todas las relaciones y columnas ID, y volver a la adición de ellos es una gran prueba.

Es mucho más fácil de actualizar el modelo generado (.edmx).

Sí, Visual Studio le permite actualizar el tipo de datos sin quejarse. De hecho, cuando guardas el archivo .edmx, las relaciones serán validadas; cualquier campo que haya perdido se mostrará como un error.

Después de que haya terminado, puede regenerar la base de datos desde el modelo. Boom, hecho.

0

Si la respuesta de Singh no funciona, probablemente tenga que soltar la tabla y volver a crearla.

Cuestiones relacionadas