19

मैं एक उपयोगकर्ता को SQL सर्वर स्क्रिप्ट में छोड़ना चाहता हूं लेकिन मुझे पहले अस्तित्व के लिए परीक्षण करने की आवश्यकता होगी या मुझे स्क्रिप्ट त्रुटियां मिलेंगी। जब टेबल या संग्रहीत procs छोड़ने, मैं इतना की तरह sysobjects तालिका की जाँच करें:SQL सर्वर में किसी उपयोगकर्ता के अस्तित्व के लिए आप कैसे परीक्षण करते हैं?

IF EXISTS (
    SELECT * 
    FROM sysobjects 
    WHERE id = object_id(N'[dbo].[up_SetMedOptions]') 
    AND OBJECTPROPERTY(id, N'IsProcedure') = 1 
) 
Drop Procedure up_SetMedOptions; 
GO 

एक उपयोगकर्ता के लिए जाँच के लिए परिणाम क्या है? ध्यान दें कि मैं सर्वर पर डेटाबेस लॉगिन के बारे में नहीं पूछ रहा हूं! सवाल एक विशिष्ट डेटाबेस में उपयोगकर्ता से संबंधित है।

उत्तर

32

SSMS स्क्रिप्ट निम्नलिखित तरीके से यह:

एसक्यूएल 2005/2008 के लिए:

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

एसक्यूएल 2000 के लिए:

IF EXISTS (SELECT * FROM dbo.sysusers WHERE name = N'username') 
EXEC dbo.sp_revokedbaccess N'username' 
2

एसक्यूएल 2005 में:

select * from sys.sysusers 

एसक्यूएल 2000 में:

select * from sysusers 
-1

नीचे दिया गया कोड मेरे लिए काम करता है।

IF EXISTS (SELECT * FROM sys.syslogins WHERE name = N'MyUserName') 
DROP LOGIN [MyUserName] 
+3

सवाल विशेष रूप से कहता है "मैं ** ** ** डेटाबेस के लिए लॉगिन ** ** ** ** के बारे में पूछ रहा हूं"। आपका समाधान ** लॉगिन ** को हटा देगा और एक अनाथ डेटाबेस ** उपयोगकर्ता ** छोड़ देगा। –

संबंधित मुद्दे