2010-01-07 45 views
17

Làm cách nào để có thể thả người dùng khỏi cơ sở dữ liệu mà không làm mất nhật ký của nó?Thả Người dùng từ Cơ sở dữ liệu SQL Server?

Tập lệnh nên kiểm tra xem người dùng có tồn tại trong cơ sở dữ liệu không, sau đó thả người dùng.

+0

bản sao có thể có của [Làm thế nào để bạn kiểm tra sự tồn tại của người dùng trong SQL Server?] (Http://stackoverflow.com/questions/356000/how-do-you-test-for-the-existence-of -a-user-in-sql-server) – IMSoP

Trả lời

35

Đây có phải là những gì bạn đang cố gắng làm không ??

IF EXISTS (SELECT * FROM sys.database_principals WHERE name = N'username') 
DROP USER [username] 

Nếu bạn đang sử dụng SQL Server Management Studio, bạn có thể duyệt đến người dùng và nhấp chuột phải chọn xóa.

+0

N ở đây là gì N'username '? – zer0w1dthspace

+2

'n' chỉ nói với máy chủ sql rằng giá trị chuỗi là unicode. Điều này có thể ngăn chặn các vấn đề cho những người làm việc trong các bộ ký tự khác nhau. –

1

Bạn có thể chỉ cần có cờ Đã bỏ/Xóa trên bảng người dùng mà bạn đã đặt, do đó duy trì tính toàn vẹn tham chiếu nếu bạn muốn giữ thông tin ghi nhật ký cho người dùng đó.

Nếu không, có vẻ như bạn sẽ phải xóa ràng buộc khóa ngoài đang ngăn xóa hiện tại, tuy nhiên tôi sẽ không đề xuất điều này.

Các vấn đề liên quan