2011-04-01 15 views
20

के लिए डिफ़ॉल्ट SQL सर्वर स्कीमा का पता लगाएं मुझे यह जानने की आवश्यकता है कि SQL डिफ़ॉल्ट स्क्रिप्ट में वर्तमान डिफ़ॉल्ट स्कीमा क्या है जो कुछ डीडीएल कर रही है। मुझे स्कीमा सेट करने की आवश्यकता नहीं है, लेकिन मुझे एक चर में संदर्भ (नाम या आईडी) का संदर्भ प्राप्त करने की आवश्यकता है। स्क्रिप्ट एक खिड़कियों के रूप में प्रवेश चल रहा हो सकता है, तो निम्न नहीं पर्याप्त है:सत्र

SELECT name, default_schema_name 
FROM sys.database_principals 
WHERE type = 'S' and name = SYSTEM_USER --SYSTEM User won't be named as a principal 

मैं वर्तमान स्कीमा में एक बेतरतीब ढंग से नामित वस्तु बनाने, और उसके बाद में इसकी जानकारी को देखकर यह ऐसा करने का सोचा है info_schema, लेकिन क्या किसी के पास एक कठिन तरीका है?

मैं एसक्यूएल सर्वर 2005

उत्तर

33

इसके बारे में कैसे।

SELECT SCHEMA_NAME()

http://msdn.microsoft.com/en-us/library/ms175068.aspx

SCHEMA_NAME

वैकल्पिक रूप से फोन करने वाले के डिफ़ॉल्ट स्कीमा SCHEMA_ID()

के नाम वापस आ जाएगी
1

यहाँ में काम कर रहा हूँ है आप अपने वर्तमान स्कीमा के बारे में अधिक जानकारी देखने के लिए क्या कर सकते हैं:

select sc.name as schemaname, sp.[name] as owner, 
sp.default_database_name as [database] from sys.schemas sc 
inner join sys.server_principals sp on sc.principal_id = sp.principal_id 

select sc.name as schemaname, sp.[name] as owner, 
sp.default_database_name as [database],sp.* from sys.schemas sc 
inner join sys.server_principals sp on sc.principal_id = sp.principal_id 

SELECT name, default_schema_name 
FROM sys.database_principals WHERE type = 'S' 

मुझे आशा है कि इस मदद करता है।

3

वर्तमान उपयोगकर्ता के डीबी प्रिंसिपल प्राप्त करने के लिए DATABASE_PRINCIPAL_ID का उपयोग करने के बारे में कैसे?

SELECT name, default_schema_name 
FROM sys.database_principals 
WHERE type = 'S' and name = USER_NAME(DATABASE_PRINCIPAL_ID()) 
संबंधित मुद्दे