¿Existe alguna manera fácil de verificar si existe una clave externa para una columna en una tabla? Estoy escribiendo un script que agregará la clave externa solo si no existe.Una forma de comprobar si existe una clave externa en SQL 2005
35
A
Respuesta
65
Puede utilizar este script:
IF EXISTS (SELECT *
FROM sys.foreign_keys
WHERE object_id = OBJECT_ID(N'[dbo].[FK_NAME]')
AND parent_object_id = OBJECT_ID(N'[dbo].[MyTable]'))
BEGIN
-- do stuff
END
Esto se puede hacer si expande la tabla y haga clic derecho en una FK existente y seleccionar Clave guión como "GOTA A" y por lo que recibirá un generado secuencia de comandos de SQL.
7
Woo-hoo! Acabo de pasar los últimos dos días haciendo esto.
IF NOT EXISTS (SELECT name
FROM sys.foreign_keys
WHERE name = 'FK_Name')
ALTER TABLE table_name ADD CONSTRAINT FK_Name FOREIGN KEY (idcol)
REFERENCES OtherTable(idcol)
Cuestiones relacionadas
- 1. Comprobar si existe una clave en Memcache
- 2. MySQL: Insertar si existe una clave externa
- 3. ¿Cómo elimino una restricción de clave externa solo si existe en el servidor sql?
- 4. SQL Server 2005: Restricción de clave externa anulable
- 5. SparseArray, comprobar si la clave existe
- 6. Django: Comprobar si el atributo de clave externa se establece
- 7. Comprobar si existe una URL en Ruby
- 8. php: comprobar si existe una ruta?
- 9. Comprobar si existe recurso
- 10. ¿Cómo comprobar si existe una palabra en una frase
- 11. ¿Cómo comprobar si existe una ventana hija?
- 12. Comprobando si existe una clave de registro
- 13. iPhone: ¿Cómo comprobar si existe una subcadena en una cadena?
- 14. MySQL 5.5 restricción de clave externa falla cuando existe una clave externa
- 15. ¿Cómo comprobar si existe una columna antes de agregarla a una tabla existente en PL/SQL?
- 16. clave externa condicional en SQL
- 17. cómo comprobar si el objeto ya existe en una lista
- 18. Comprobar si existe tabla
- 19. ¿Cómo puedo saber si se lanzó una excepción SQL debido a una violación de clave externa?
- 20. ¿Cómo verificar si existe una clave appSettings?
- 21. ¿Cómo comprobar si existe una base de datos en SQL Server?
- 22. Cómo comprobar si existe una clave, par de valores en un diccionario
- 23. ¿Cómo comprobar si existe una imagen con una URL determinada?
- 24. Cuándo utilizar una clave externa en MySQL
- 25. Crear una clave externa compuesta en SQL Server 2008
- 26. ¿Cómo puedo soltar una clave externa en SQL Server?
- 27. ¿Existe alguna manera más rápida de verificar si existe una página web externa?
- 28. PHP MySQL Comprobar si una tabla tiene una clave principal
- 29. clave externa que hace referencia una clave principal 2 columnas en SQL Server
- 30. XSLT: Comprobar si existe un valor en una lista
¡Este script funcionó muy bien! No puedo creer que puedas escribir algo así desde el menú. Muchas gracias por la ayuda. –
Puede hacer clic con el botón derecho en cualquier elemento de SQL y generar un script para usted, Tablas, Procedimientos almacenados, Clave externa y más. Management Studio es tu amigo una vez que aprendes algunas de las excelentes funciones que puede hacer. – CodeLikeBeaker
Este método solo funciona si se usa el nombre predeterminado de la clave externa. No es confiable trabajar con nombres basados en suposiciones, especialmente si está trabajando en bases de datos creadas por otros que podrían seguir una convención de nombres diferente. ¿Hay alguna manera de verificar si una columna en particular es una clave externa a otra tabla en lugar de buscar el nombre de Foreign Key? –