Tôi đang viết một kịch bản lệnh sql để thả cột và ràng buộc mặc định. Kịch bản sau đây hoạt động tốt nhưng tôi muốn biết nếu nó là một cách đúng đắn để làm điều đó.Thả một cột có ràng buộc mặc định trong SQL Server (IF EXISTS)
Tôi có thể bỏ ràng buộc mặc định bằng một cột trong một câu lệnh thay vì sử dụng hai câu lệnh riêng biệt không?
IF EXISTS (SELECT * FROM dbo.sysobjects WHERE id = OBJECT_ID(N'[DF_Employees_EmpID]') AND type = 'D')
BEGIN
ALTER TABLE [dbo].[Employees] DROP CONSTRAINT [DF_Employees_EmpID]
END
GO
BEGIN
ALTER TABLE [dbo].[Employees] DROP COLUMN [EmpID]
END
Tôi nghĩ bạn phải làm một cách riêng biệt - và bạn làm thế, ** nếu ** bạn cần có kiểm tra điều kiện. Nếu ràng buộc chắc chắn sẽ tồn tại, thì nó có thể được thực hiện như một 'ALTER TABLE' duy nhất. –
cách tôi đã làm là đúng? – user1263981
Có, nếu bạn cần kiểm tra có điều kiện, không có cách nào thực sự để rút ngắn mã này. –