Sqlserver
 sql >> база данни >  >> RDS >> Sqlserver

Как да добавите ограничение за външен ключ към съществуваща таблица в SQL Server (T-SQL)

По отношение на базата данни външен ключ е колона, която е свързана с полето за първичен ключ на друга таблица във връзка между две таблици.

Външният ключ е вид ограничение и така, ако искате да създадете външен ключ в SQL Server, ще трябва да създадете ограничение за външен ключ.

Тази статия демонстрира как да създадете ограничение за външен ключ в SQL Server, използвайки Transact-SQL.

Пример

Най-лесният начин да демонстрирате това е с пример. В този пример използваме T-SQL, за да създадем ограничение за външен ключ, използвайки ALTER TABLE изявление:

USE Music;
ALTER TABLE Albums
  ADD CONSTRAINT FK_Albums_Artists FOREIGN KEY (ArtistId)     
      REFERENCES dbo.Artists (ArtistId)
      ON DELETE CASCADE    
      ON UPDATE CASCADE
  ;
GO

Това създава връзка между две таблици ( Albums таблицата и Artists) таблица). Правим това, като създаваме ограничение за външен ключ в Albums маса. Посочваме, че Albums.ArtistId колоната е външен ключ към Artists.ArtistId колона.

Това очевидно предполага, че двете таблици съществуват. Ако не го направят, ще получим грешка.

Ние също така използваме GO което всъщност не е част от T-SQL. Разпознава се от различни помощни програми, за да сигнализира края на група T-SQL изрази.

Проверете резултата

Можете да проверите резултата, като изпълните следния скрипт:

USE Music;
SELECT 
    name,
    type_desc,
    delete_referential_action_desc,
    update_referential_action_desc
FROM sys.foreign_keys;
GO

Това изброява външните ключове в Music база данни. Променете името на базата данни според нуждите.

Ако вашата база данни има твърде много външни ключове, винаги можете да я стесните с WHERE клауза към конкретния външен ключ, който ви интересува. Можете също да използвате заместващия знак (* ), ако трябва да бъдат върнати всички колони.


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Динамичен SQL (предаване на името на таблицата като параметър)

  2. Как мога да извикам SQL съхранена процедура с помощта на EntityFramework 7 и Asp.Net 5

  3. Кои са по-ефективни, CTE или временни таблици?

  4. SQL Server:Примери за PIVOTing String данни

  5. Разделете стойностите на няколко реда