SORU
27 Ocak 2009, Salı


Nasıl sql server varsa, sadece bir yabancı anahtar kısıtlaması düşüreceğim?

Eğer varsa aşağıdaki kodu kullanarak eğer varsa bir tablo bırakabilirim ama bir kısıtlama ile aynı yapmak için ne yapmam gerektiğini bilmiyorum:

IF EXISTS(SELECT 1 FROM sys.objects WHERE OBJECT_ID = OBJECT_ID(N'TableName') AND type = (N'U')) DROP TABLE TableName
go

Ben de bu kodu kullanarak: kısıtlama ekleyin

ALTER TABLE [dbo].[TableName] 
  WITH CHECK ADD CONSTRAINT [FK_TableName_TableName2] FOREIGN KEY([FK_Name])
    REFERENCES [dbo].[TableName2] ([ID])
go

CEVAP
1 Kasım 2012, PERŞEMBE


Bu çok geçerli önerilen çözüm daha basittir:

IF (OBJECT_ID('FK_ConstraintName', 'F') IS NOT NULL)
BEGIN
    ALTER TABLE dbo.TableName DROP CONSTRAINT FK_ConstraintName
END

Eğer kısıtlama başka tür düşmesi gerekiyorsa, bu bunun ANLAMI içine geçmek için geçerli kodları() ikinci parametre konumunda fonksiyon:

C = CHECK constraint
D = DEFAULT (constraint or stand-alone)
F = FOREIGN KEY constraint
PK = PRIMARY KEY constraint
UQ = UNIQUE constraint

Ayrıca ikinci parametre olmadan ANLAMI kullanabilirsiniz.

12* *türlerinin tam Listesi:

Nesne türü:

AF = Aggregate function (CLR)
C = CHECK constraint
D = DEFAULT (constraint or stand-alone)
F = FOREIGN KEY constraint
FN = SQL scalar function
FS = Assembly (CLR) scalar-function
FT = Assembly (CLR) table-valued function
IF = SQL inline table-valued function
IT = Internal table
P = SQL Stored Procedure
PC = Assembly (CLR) stored-procedure
PG = Plan guide
PK = PRIMARY KEY constraint
R = Rule (old-style, stand-alone)
RF = Replication-filter-procedure
S = System base table
SN = Synonym
SO = Sequence object

İçin geçerlidir: SQL Server ile SQL Server 2012 2014.

SQ = Service queue
TA = Assembly (CLR) DML trigger
TF = SQL table-valued-function
TR = SQL DML trigger
TT = Table type
U = Table (user-defined)
UQ = UNIQUE constraint
V = View
X = Extended stored procedure

Bunu Paylaş:
  • Google+
  • E-Posta
Etiketler:

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • HTC

    HTC

    12 Ocak 2006
  • iBand IguJoo

    iBand IguJoo

    25 AĞUSTOS 2006
  • Xcode programming tutorials

    Xcode progra

    17 EYLÜL 2006