¿Es posible cambiar el nombre de una restricción en SQL Server? No quiero tener que eliminar y crear uno nuevo porque esta restricción afecta a otras restricciones ya existentes y tendré que volver a crearlas/modificarlas.¿Cambiar el nombre de una restricción en SQL Server?
Respuesta
puede cambiar el nombre utilizando sp_rename usando @objtype = 'OBJECT'
Esto funciona en objetos enumerados en la sys.objects que incluye restricciones
Puede utilizar sp_rename.
sp_rename 'CK_Ax', 'CK_Ax1'
+1 Esto es lo que usa SSMS al cambiar el nombre de las restricciones. Para una restricción PK, pasa 'INDEX' como tipo de objeto. –
También es importante tener en cuenta que las restricciones de CHECK, a diferencia de PK, no requieren un prefijo de tabla en el primer parámetro 'sp_rename', y fallarán si usa uno. – mattmc3
Después de un poco más de excavación, descubrí que en realidad tiene que ser en esta forma:
EXEC sp_rename N'schema.MyIOldConstraint', N'MyNewConstraint', N'OBJECT'
Esta es la respuesta más precisa. Las otras formas solo funcionan porque la mayoría de las personas vuelcan todas sus tablas en el esquema predeterminado (generalmente "dbo :) y puede omitir el esquema predeterminado. Pero si usa varios esquemas, esto es correcto (y siempre puede indicar el" dbo ")) – Godeke
respuesta es verdadera:
exec sp_rename
@objname = 'Old_Constraint',
@newname = 'New_Constraint',
@objtype = 'object'
Sé que esto es una vieja pregunta, pero acabo de encontrar lo siguiente para ser muy útil, además de las otras excelentes respuestas:
Si la restricción a la nueva denominación tiene un período en el que (punto), entonces usted necesita para encerrar entre corchetes, así:
sp_rename 'schema.[Name.With.Period.In.It]', 'New.Name.With.Period.In.It'
- 1. SQL Server: ¿Cómo cambiar el nombre en una vista?
- 2. Cambiar el nombre de un procedimiento almacenado en SQL Server
- 3. Restricción NULL de SQL Server
- 4. Cambiar el nombre de la columna en SQL Server 2008
- 5. Cambiar el nombre de la columna en SQL Server
- 6. restricción de fila única en SQL Server
- 7. ¿Por qué SQL Server sigue creando una restricción de DF?
- 8. Problema de restricción único de SQL Server
- 9. Cómo crear una restricción única compuesta en SQL Server 2005
- 10. Cambiar el nombre de una base de datos SQL
- 11. SQL Server restricción UNIQUE con nulos duplicados
- 12. Extraño comportamiento al cambiar el nombre de una columna en SQL Server 2008
- 13. Cambiar el nombre de una columna en MS SQL Server 2005
- 14. SQL Server 2005 ¿Cómo crear una restricción única?
- 15. ¿Es posible cambiar el nombre de una instancia de SQL Server 2005?
- 16. sql: ¿necesita cambiar la restricción en la tabla de cambio de nombre?
- 17. Cambiar el nombre de una instancia de servidor sql
- 18. Cambiar el nombre del archivo de datos de la base de datos en SQL Server 2005
- 19. ¿Cómo verificar si existe una restricción en el servidor Sql?
- 20. SQL Server 2005 Restricción única en dos columnas
- 21. SQL Server 2005: Restricción de clave externa anulable
- 22. ¿Cómo obtener el nombre de una restricción única en postgresql?
- 23. SQL Server 2005 cómo cambiar el nombre de inicio de sesión DBO
- 24. Actualización del nombre de restricción en PostgreSQL
- 25. ¿Puedo crear una restricción predeterminada nombrada en una instrucción agregar columna en SQL Server?
- 26. cómo cambiar el nombre de la columna con T-SQL
- 27. Cambiar nombre de la columna durante el uso de PIVOT SQL Server 2008
- 28. Cambiar la configuración de SQL Server programáticamente
- 29. Cambiar el modo de recuperación de SQL Server 2008
- 30. Búsqueda de SQL Server para una columna por nombre
En caso de que no se puede conseguir que esto funcione, dice en MSDN - * "Al cambiar el nombre de una restricción, se debe especificar el esquema al que pertenece la restricción." * –
Para las restricciones PK no es necesario que se especifique '@objtype = 'OBJECT''. Solo especifique el nombre antiguo y el nuevo nombre. – pkuderov