Básicamente quiero usar uniqueidentifier de forma similar a la identidad. No quiero insertar valores en él, solo debe insertar valores automáticamente, diferente valor para cada fila. No puedo establecer el autoincremento en las columnas del tipo uniqueidentifier (la propiedad 'autoincrement' está establecida en false y no es editable).Autoincrement uniqueidentifier
Respuesta
O incluso mejor: utilice el newsequentialid()
como valor predeterminado para su columna UNIQUEIDENITIFER. Eso te dará una serie de GUID algo secuencial.
CREATE TABLE dbo.YourTable
(SerialID UNIQUEIDENTIFIER
CONSTRAINT DF_SerialID DEFAULT newsequentialid(),
.... (other columns)......
)
El problema es: newsequentialid es solamente disponible de fábrica columna - no se puede llamar como una función o nada. Pero eso parece ajustarse a tus requisitos.
ACTUALIZACIÓN: no parece ser un error reconocido en SQL Server Management Studio que evita que especifica newsequentialid()
como el valor predeterminado para una columna en el diseñador mesa interactiva.
Ver: http://social.msdn.microsoft.com/Forums/en-US/sqltools/thread/cad8a4d7-714f-44a2-adb0-569655ac66e6
Solución: crear la tabla sin especificar ningún defecto, a continuación, escriba en esta instrucción T-SQL en una ventana de consulta normal y ejecutarlo:
ALTER TABLE dbo.YourTable
ADD CONSTRAINT DF_SerialID DEFAULT newsequentialid() FOR SerialID
Que debe hacer el ¡truco!
Use NewID() como valor predeterminado. Al menos esto es lo que harías por SQL Server.
esos no están exactamente en ninguna parte cerca de la secuencia/autoincremento g, aunque ..... –
Lo he intentado pero parece generar siempre el mismo identificador (este: "00000000-0000-0000-0000-000000000000"). Así que cuando inserto la segunda fila me sale el error (atando para insertar la clave principal que ya está en uso) – drasto
¡debe establecer newId() directamente en la definición de tabla dentro de su base de datos! – MUG4N
supongo que quiere decir en SQL Server y no en C# ...
Establecer la columna como clave principal y ROWGUID
RowGuid http://img341.imageshack.us/img341/8867/sqlserverrowguid.png
¡solo asegúrate de que ** NO ** lo uses como el índice agrupado en la mesa !! –
¿Por qué no? Lo estoy usando en un proyecto y funciona bien, todo parece normal, verifiqué el plan de ejecución, ordené las tablas, todo es normal ... – BrunoLM
GUID como índice agrupado es terriblemente malo: revisa http: //www.sqlskills. com/BLOGS/KIMBERLY/post/GUIDs-as-PRIMARY-KEYs-andor-the-clustering-key.aspx - conducen a la fragmentación masiva de páginas e índices –
creo
CREATE TABLE dbo.YourTable
(
SerialID UNIQUEIDENTIFIER PRIMARY KEY DEFAULT newsequentialid()
)
es más simple
- 1. Comparar Varchar y UniqueIdentifier
- 2. C# guid y SQL uniqueidentifier
- 3. NewSequentialId en UniqueIdentifier Index agrupado
- 4. Error en near 'Autoincrement'
- 5. SQL Azure Restablecer autoincrement
- 6. ¿Restablecer autoincrement ID? phpmyadmin
- 7. Restablecimiento Autoincrement en Android SQLite
- 8. Configuración SQLAlchemy AutoIncrement valor inicial
- 9. SQLite: autoincrement preguntas claves primarias
- 10. Autoincrement SQLite - ¿Cómo insertar valores?
- 11. uniqueidentifier Tipo de datos equivalente en C#
- 12. GUID: varchar (36) frente a uniqueidentifier
- 13. Cómo SQL Server crea uniqueidentifier usando NEWID()
- 14. Convertir varchar a UNIQUEIDENTIFIER en SQL Server
- 15. función de agregado en Uniqueidentifier (GUID)
- 16. Convierte de UniqueIdentifier a BigInt y Atrás?
- 17. Campos de AutoIncrement en bases de datos sin campo de autoincrement
- 18. SQL Server 2005 UniqueIdentifier y C# Data Type
- 19. Pasando uniqueidentifier parámetro a un procedimiento almacenado de
- 20. sql server change PK type from int to uniqueidentifier
- 21. Límite superior para clave primaria autoincrement en SQL Server
- 22. Autoincrement clave principal en la base de datos Oracle
- 23. MySQL arreglando brechas de autoincrement en dos tablas
- 24. ¿Qué sucede si necesito una identificación de autoincrement muy grande?
- 25. SQLAlchemy Obtener la clave principal con autoincrement Antes de confirmar
- 26. identificación autoincrement/emulación de secuencia con CassandraDB/MongoDB etc.
- 27. MySQL: # 1075 - Definición de tabla incorrecta; autoincrement vs otra clave?
- 28. Cómo usar autoincrement-IDs en la exportación Sqoop
- 29. Cómo anotar campo de autoincrement de MYSQL con anotaciones JPA
- 30. Campos de AutoIncrement distintos de Id in grails
Eso no es un problema para mí. Tu respuesta parece ser lo que estaba buscando. Voy a intentarlo :) – drasto
Recibí el mensaje "Error al validar el valor predeterminado para la Columna XY". ¿Podría controlar su código (un error tipográfico?)? – drasto
@drasto: ejecuté ese código en SQL Server 2008 R2 antes de publicarlo, funciona. ¿Qué * versión * de SQL Server tienes ??? Quité corchetes adicionales alrededor de newsequentialid() - tal vez eso es un problema? Es seguro que funciona en 2008R2 –