Adını belirtmeden bir yabancı anahtar oluşturdum, böylece sql sunucusu otomatik oluşturulan adla oluşturdu. Şimdi bu yabancı anahtarı olan sütunu bırakmak istiyorum. Sorun şu ki bu yabancı anahtarın adını bilmiyorum. Belirli bir tablonun tüm yabancı anahtarlarını belirli bir tabloya bırakmanın bir yolu var mı?Belirli bir sütunun yabancı anahtarları nasıl açılır
Şimdiye kadar sütuna
DECLARE @tableName VARCHAR(MAX)
DECLARE @ConstraintName nvarchar(200)
DECLARE @columnName VARCHAR(MAX)
SET @tableName = 'tablename'
SET @columnName = 'columnname'
SELECT @ConstraintName = Name
FROM SYS.DEFAULT_CONSTRAINTS
WHERE PARENT_OBJECT_ID = OBJECT_ID(@tableName)
AND PARENT_COLUMN_ID = (
SELECT column_id FROM sys.columns
WHERE NAME = @columnName AND object_id = OBJECT_ID(@tableName))
IF @ConstraintName IS NOT NULL
BEGIN
EXEC('ALTER TABLE '[email protected]+' DROP CONSTRAINT ' + @ConstraintName)
END
ALTER TABLE [tablename] DROP COLUMN columnname
GO
için tüm varsayılan kısıtlamaları düşer bu senaryoyu buldum Ama yabancı anahtar kısıtlamaları ile yardımcı olmuyor.
'EXEC sp_help 'TABLE_NAME';' Sonuç kümesinden FK kısıtlama adını kopyalayın ve ardından 'DROP CONSTRAINT' komutunu kullanarak bırakın! –