2009-05-15 8 views

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.

+0

¡Este script funcionó muy bien! No puedo creer que puedas escribir algo así desde el menú. Muchas gracias por la ayuda. –

+5

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

+0

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? –

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