- SQL Server Reference Guide
- Introduction
- SQL Server Reference Guide Overview
- Table of Contents
- Microsoft SQL Server Defined
- SQL Server Editions
- SQL Server Access
- Informit Articles and Sample Chapters
- Online Resources
- Microsoft SQL Server Features
- SQL Server Books Online
- Clustering Services
- Data Transformation Services (DTS) Overview
- Replication Services
- Database Mirroring
- Natural Language Processing (NLP)
- Analysis Services
- Microsot SQL Server Reporting Services
- XML Overview
- Notification Services for the DBA
- Full-Text Search
- SQL Server 2005 - Service Broker
- Using SQL Server as a Web Service
- SQL Server Encryption Options Overview
- SQL Server 2008 Overview
- SQL Server 2008 R2 Overview
- SQL Azure
- The Utility Control Point and Data Application Component, Part 1
- The Utility Control Point and Data Application Component, Part 2
- Microsoft SQL Server Administration
- The DBA Survival Guide: The 10 Minute SQL Server Overview
- Preparing (or Tuning) a Windows System for SQL Server, Part 1
- Preparing (or Tuning) a Windows System for SQL Server, Part 2
- Installing SQL Server
- Upgrading SQL Server
- SQL Server 2000 Management Tools
- SQL Server 2005 Management Tools
- SQL Server 2008 Management Tools
- SQL Azure Tools
- Automating Tasks with SQL Server Agent
- Run Operating System Commands in SQL Agent using PowerShell
- Automating Tasks Without SQL Server Agent
- Storage – SQL Server I/O
- Service Packs, Hotfixes and Cumulative Upgrades
- Tracking SQL Server Information with Error and Event Logs
- Change Management
- SQL Server Metadata, Part One
- SQL Server Meta-Data, Part Two
- Monitoring - SQL Server 2005 Dynamic Views and Functions
- Monitoring - Performance Monitor
- Unattended Performance Monitoring for SQL Server
- Monitoring - User-Defined Performance Counters
- Monitoring: SQL Server Activity Monitor
- SQL Server Instances
- DBCC Commands
- SQL Server and Mail
- Database Maintenance Checklist
- The Maintenance Wizard: SQL Server 2000 and Earlier
- The Maintenance Wizard: SQL Server 2005 (SP2) and Later
- The Web Assistant Wizard
- Creating Web Pages from SQL Server
- SQL Server Security
- Securing the SQL Server Platform, Part 1
- Securing the SQL Server Platform, Part 2
- SQL Server Security: Users and other Principals
- SQL Server Security – Roles
- SQL Server Security: Objects (Securables)
- Security: Using the Command Line
- SQL Server Security - Encrypting Connections
- SQL Server Security: Encrypting Data
- SQL Server Security Audit
- High Availability - SQL Server Clustering
- SQL Server Configuration, Part 1
- SQL Server Configuration, Part 2
- Database Configuration Options
- 32- vs 64-bit Computing for SQL Server
- SQL Server and Memory
- Performance Tuning: Introduction to Indexes
- Statistical Indexes
- Backup and Recovery
- Backup and Recovery Examples, Part One
- Backup and Recovery Examples, Part Two: Transferring Databases to Another System (Even Without Backups)
- SQL Profiler - Reverse Engineering An Application
- SQL Trace
- SQL Server Alerts
- Files and Filegroups
- Partitioning
- Full-Text Indexes
- Read-Only Data
- SQL Server Locks
- Monitoring Locking and Deadlocking
- Controlling Locks in SQL Server
- SQL Server Policy-Based Management, Part One
- SQL Server Policy-Based Management, Part Two
- SQL Server Policy-Based Management, Part Three
- Microsoft SQL Server Programming
- An Outline for Development
- Database
- Database Services
- Database Objects: Databases
- Database Objects: Tables
- Database Objects: Table Relationships
- Database Objects: Keys
- Database Objects: Constraints
- Database Objects: Data Types
- Database Objects: Views
- Database Objects: Stored Procedures
- Database Objects: Indexes
- Database Objects: User Defined Functions
- Database Objects: Triggers
- Database Design: Requirements, Entities, and Attributes
- Business Process Model Notation (BPMN) and the Data Professional
- Business Questions for Database Design, Part One
- Business Questions for Database Design, Part Two
- Database Design: Finalizing Requirements and Defining Relationships
- Database Design: Creating an Entity Relationship Diagram
- Database Design: The Logical ERD
- Database Design: Adjusting The Model
- Database Design: Normalizing the Model
- Creating The Physical Model
- Database Design: Changing Attributes to Columns
- Database Design: Creating The Physical Database
- Database Design Example: Curriculum Vitae
- NULLs
- The SQL Server Sample Databases
- The SQL Server Sample Databases: pubs
- The SQL Server Sample Databases: NorthWind
- The SQL Server Sample Databases: AdventureWorks
- The SQL Server Sample Databases: Adventureworks Derivatives
- UniversalDB: The Demo and Testing Database, Part 1
- UniversalDB: The Demo and Testing Database, Part 2
- UniversalDB: The Demo and Testing Database, Part 3
- UniversalDB: The Demo and Testing Database, Part 4
- Getting Started with Transact-SQL
- Transact-SQL: Data Definition Language (DDL) Basics
- Transact-SQL: Limiting Results
- Transact-SQL: More Operators
- Transact-SQL: Ordering and Aggregating Data
- Transact-SQL: Subqueries
- Transact-SQL: Joins
- Transact-SQL: Complex Joins - Building a View with Multiple JOINs
- Transact-SQL: Inserts, Updates, and Deletes
- An Introduction to the CLR in SQL Server 2005
- Design Elements Part 1: Programming Flow Overview, Code Format and Commenting your Code
- Design Elements Part 2: Controlling SQL's Scope
- Design Elements Part 3: Error Handling
- Design Elements Part 4: Variables
- Design Elements Part 5: Where Does The Code Live?
- Design Elements Part 6: Math Operators and Functions
- Design Elements Part 7: Statistical Functions
- Design Elements Part 8: Summarization Statistical Algorithms
- Design Elements Part 9:Representing Data with Statistical Algorithms
- Design Elements Part 10: Interpreting the Data—Regression
- Design Elements Part 11: String Manipulation
- Design Elements Part 12: Loops
- Design Elements Part 13: Recursion
- Design Elements Part 14: Arrays
- Design Elements Part 15: Event-Driven Programming Vs. Scheduled Processes
- Design Elements Part 16: Event-Driven Programming
- Design Elements Part 17: Program Flow
- Forming Queries Part 1: Design
- Forming Queries Part 2: Query Basics
- Forming Queries Part 3: Query Optimization
- Forming Queries Part 4: SET Options
- Forming Queries Part 5: Table Optimization Hints
- Using SQL Server Templates
- Transact-SQL Unit Testing
- Index Tuning Wizard
- Unicode and SQL Server
- SQL Server Development Tools
- The SQL Server Transact-SQL Debugger
- The Transact-SQL Debugger, Part 2
- Basic Troubleshooting for Transact-SQL Code
- An Introduction to Spatial Data in SQL Server 2008
- Performance Tuning
- Performance Tuning SQL Server: Tools and Processes
- Performance Tuning SQL Server: Tools Overview
- Creating a Performance Tuning Audit - Defining Components
- Creating a Performance Tuning Audit - Evaluation Part One
- Creating a Performance Tuning Audit - Evaluation Part Two
- Creating a Performance Tuning Audit - Interpretation
- Creating a Performance Tuning Audit - Developing an Action Plan
- Understanding SQL Server Query Plans
- Performance Tuning: Implementing Indexes
- Performance Monitoring Tools: Windows 2008 (and Higher) Server Utilities, Part 1
- Performance Monitoring Tools: Windows 2008 (and Higher) Server Utilities, Part 2
- Performance Monitoring Tools: Windows System Monitor
- Performance Monitoring Tools: Logging with System Monitor
- Performance Monitoring Tools: User Defined Counters
- General Transact-SQL (T-SQL) Performance Tuning, Part 1
- General Transact-SQL (T-SQL) Performance Tuning, Part 2
- General Transact-SQL (T-SQL) Performance Tuning, Part 3
- Performance Monitoring Tools: An Introduction to SQL Profiler
- Performance Tuning: Introduction to Indexes
- Performance Monitoring Tools: SQL Server 2000 Index Tuning Wizard
- Performance Monitoring Tools: SQL Server 2005 Database Tuning Advisor
- Performance Monitoring Tools: SQL Server Management Studio Reports
- Performance Monitoring Tools: SQL Server 2008 Activity Monitor
- The SQL Server 2008 Management Data Warehouse and Data Collector
- Performance Monitoring Tools: Evaluating Wait States with PowerShell and Excel
- Practical Applications
- Choosing the Back End
- The DBA's Toolbox, Part 1
- The DBA's Toolbox, Part 2
- Scripting Solutions for SQL Server
- Building a SQL Server Lab
- Using Graphics Files with SQL Server
- Enterprise Resource Planning
- Customer Relationship Management (CRM)
- Building a Reporting Data Server
- Building a Database Documenter, Part 1
- Building a Database Documenter, Part 2
- Data Management Objects
- Data Management Objects: The Server Object
- Data Management Objects: Server Object Methods
- Data Management Objects: Collections and the Database Object
- Data Management Objects: Database Information
- Data Management Objects: Database Control
- Data Management Objects: Database Maintenance
- Data Management Objects: Logging the Process
- Data Management Objects: Running SQL Statements
- Data Management Objects: Multiple Row Returns
- Data Management Objects: Other Database Objects
- Data Management Objects: Security
- Data Management Objects: Scripting
- Powershell and SQL Server - Overview
- PowerShell and SQL Server - Objects and Providers
- Powershell and SQL Server - A Script Framework
- Powershell and SQL Server - Logging the Process
- Powershell and SQL Server - Reading a Control File
- Powershell and SQL Server - SQL Server Access
- Powershell and SQL Server - Web Pages from a SQL Query
- Powershell and SQL Server - Scrubbing the Event Logs
- SQL Server 2008 PowerShell Provider
- SQL Server I/O: Importing and Exporting Data
- SQL Server I/O: XML in Database Terms
- SQL Server I/O: Creating XML Output
- SQL Server I/O: Reading XML Documents
- SQL Server I/O: Using XML Control Mechanisms
- SQL Server I/O: Creating Hierarchies
- SQL Server I/O: Using HTTP with SQL Server XML
- SQL Server I/O: Using HTTP with SQL Server XML Templates
- SQL Server I/O: Remote Queries
- SQL Server I/O: Working with Text Files
- Using Microsoft SQL Server on Handheld Devices
- Front-Ends 101: Microsoft Access
- Comparing Two SQL Server Databases
- English Query - Part 1
- English Query - Part 2
- English Query - Part 3
- English Query - Part 4
- English Query - Part 5
- RSS Feeds from SQL Server
- Using SQL Server Agent to Monitor Backups
- Reporting Services - Creating a Maintenance Report
- SQL Server Chargeback Strategies, Part 1
- SQL Server Chargeback Strategies, Part 2
- SQL Server Replication Example
- Creating a Master Agent and Alert Server
- The SQL Server Central Management System: Definition
- The SQL Server Central Management System: Base Tables
- The SQL Server Central Management System: Execution of Server Information (Part 1)
- The SQL Server Central Management System: Execution of Server Information (Part 2)
- The SQL Server Central Management System: Collecting Performance Metrics
- The SQL Server Central Management System: Centralizing Agent Jobs, Events and Scripts
- The SQL Server Central Management System: Reporting the Data and Project Summary
- Time Tracking for SQL Server Operations
- Migrating Departmental Data Stores to SQL Server
- Migrating Departmental Data Stores to SQL Server: Model the System
- Migrating Departmental Data Stores to SQL Server: Model the System, Continued
- Migrating Departmental Data Stores to SQL Server: Decide on the Destination
- Migrating Departmental Data Stores to SQL Server: Design the ETL
- Migrating Departmental Data Stores to SQL Server: Design the ETL, Continued
- Migrating Departmental Data Stores to SQL Server: Attach the Front End, Test, and Monitor
- Tracking SQL Server Timed Events, Part 1
- Tracking SQL Server Timed Events, Part 2
- Patterns and Practices for the Data Professional
- Managing Vendor Databases
- Consolidation Options
- Connecting to a SQL Azure Database from Microsoft Access
- SharePoint 2007 and SQL Server, Part One
- SharePoint 2007 and SQL Server, Part Two
- SharePoint 2007 and SQL Server, Part Three
- Querying Multiple Data Sources from a Single Location (Distributed Queries)
- Importing and Exporting Data for SQL Azure
- Working on Distributed Teams
- Professional Development
- Becoming a DBA
- Certification
- DBA Levels
- Becoming a Data Professional
- SQL Server Professional Development Plan, Part 1
- SQL Server Professional Development Plan, Part 2
- SQL Server Professional Development Plan, Part 3
- Evaluating Technical Options
- System Sizing
- Creating a Disaster Recovery Plan
- Anatomy of a Disaster (Response Plan)
- Database Troubleshooting
- Conducting an Effective Code Review
- Developing an Exit Strategy
- Data Retention Strategy
- Keeping Your DBA/Developer Job in Troubled Times
- The SQL Server Runbook
- Creating and Maintaining a SQL Server Configuration History, Part 1
- Creating and Maintaining a SQL Server Configuration History, Part 2
- Creating an Application Profile, Part 1
- Creating an Application Profile, Part 2
- How to Attend a Technical Conference
- Tips for Maximizing Your IT Budget This Year
- The Importance of Blue-Sky Planning
- Application Architecture Assessments
- Transact-SQL Code Reviews, Part One
- Transact-SQL Code Reviews, Part Two
- Cloud Computing (Distributed Computing) Paradigms
- NoSQL for the SQL Server Professional, Part One
- NoSQL for the SQL Server Professional, Part Two
- Object-Role Modeling (ORM) for the Database Professional
- Business Intelligence
- BI Explained
- Developing a Data Dictionary
- BI Security
- Gathering BI Requirements
- Source System Extracts and Transforms
- ETL Mechanisms
- Business Intelligence Landscapes
- Business Intelligence Layouts and the Build or Buy Decision
- A Single Version of the Truth
- The Operational Data Store (ODS)
- Data Marts – Combining and Transforming Data
- Designing Data Elements
- The Enterprise Data Warehouse — Aggregations and the Star Schema
- On-Line Analytical Processing (OLAP)
- Data Mining
- Key Performance Indicators
- BI Presentation - Client Tools
- BI Presentation - Portals
- Implementing ETL - Introduction to SQL Server 2005 Integration Services
- Building a Business Intelligence Solution, Part 1
- Building a Business Intelligence Solution, Part 2
- Building a Business Intelligence Solution, Part 3
- Tips and Troubleshooting
- SQL Server and Microsoft Excel Integration
- Tips for the SQL Server Tools: SQL Server 2000
- Tips for the SQL Server Tools – SQL Server 2005
- Transaction Log Troubles
- SQL Server Connection Problems
- Orphaned Database Users
- Additional Resources
- Tools and Downloads
- Utilities (Free)
- Tool Review (Free): DBDesignerFork
- Aqua Data Studio
- Microsoft SQL Server Best Practices Analyzer
- Utilities (Cost)
- Quest Software's TOAD for SQL Server
- Quest Software's Spotlight on SQL Server
- SQL Server on Microsoft's Virtual PC
- Red Gate SQL Bundle
- Microsoft's Visio for Database Folks
- Quest Capacity Manager
- SQL Server Help
- Visual Studio Team Edition for Database Professionals
- Microsoft Assessment and Planning Solution Accelerator
- Aggregating Server Data from the MAPS Tool
The first thing you should do when you open a new system or work with a new database is to understand the metadata about it. Metadata is “data about data” — for instance, the server settings or the structure of a table (columns and so on), not necessarily the data inside. In this tutorial and the one that follows next, I’ll show you several methods that you can use to find out more information — more metadata.
I’ll focus mostly on the queries that you can run to find out more information about your system and the database objects it contains. In the graphical tools for SQL Server 2000, 2005 and 2008 you can right-click most any object and then select either “Properties” or “Script...” to manually examine the metadata, but there are times when you need to get this information using code — to store or perhaps to compare to a standard or another system.
I’ll also do something that I normally advise against in these tutorials. In the next couple of tutorials I’ll show you not only the “proper” way to get metadata, I’ll also show you how to access the system tables in the master database for SQL Server, in addition to the more well-behaved “system views” that Microsoft provides. There are a few of reasons for this.
In the earlier versions of SQL Server, the system tables provided the richest view of all of the system objects. And most of the time those tables have remained fairly stable. So knowing the system objects provides a “lingua franca” of sorts between the versions.
Another reason that I’ll show you these tables is to help you understand how SQL Server works with system objects. It’s a fascinating and enlightening view into the inner workings of SQL Server.
Finally, I’m covering those tables here because I’ll cover the more “proper” methods in the articles that follow this one. That way you have a complete view of the system, usable in almost every version. As I explain more about your system, you’ll find these queries useful in many ways.
The “SP_HELP” stored Procedures
In all versions of SQL Server, there are a ton of stored procedures that will give you more information than you could ever use for the system. You can look these up in Books Online, but you can also run a query to find them all — this uses those system tables I mentioned, but it is still useful:
/* Using the help stored procedures */ SELECT name FROM sysobjects -- for SQL Server 2K5 and higher use sys.sysobjects WHERE name LIKE 'sp_help%' ORDER BY name; GO
This produces the following list on SQL Server 2000:
sp_help sp_help_agent_default sp_help_agent_parameter sp_help_agent_profile sp_help_datatype_mapping sp_help_fulltext_catalogs sp_help_fulltext_catalogs_cursor sp_help_fulltext_columns sp_help_fulltext_columns_cursor sp_help_fulltext_tables sp_help_fulltext_tables_cursor sp_help_publication_access sp_helpallowmerge_publication sp_helparticle sp_helparticlecolumns sp_helparticledts sp_helpconstraint sp_helpdb sp_helpdbfixedrole sp_helpdevice sp_helpdistpublisher sp_helpdistributiondb sp_helpdistributor sp_helpdistributor_properties sp_helpextendedproc sp_helpfile sp_helpfilegroup sp_helpgroup sp_helpindex sp_helplanguage sp_helplinkedsrvlogin sp_helplog sp_helplogins sp_helpmergealternatepublisher sp_helpmergearticle sp_helpmergearticlecolumn sp_helpmergearticleconflicts sp_helpmergecleanupwait sp_helpmergeconflictrows sp_helpmergedeleteconflictrows sp_helpmergefilter sp_helpmergepublication sp_helpmergepullsubscription sp_helpmergesubscription sp_helpntgroup sp_helppublication sp_helppublicationsync sp_helppullsubscription sp_helpremotelogin sp_helpreplfailovermode sp_helpreplicationdb sp_helpreplicationdboption sp_helpreplicationoption sp_helprole sp_helprolemember sp_helprotect sp_helpserver sp_helpsort sp_helpsql sp_helpsrvrole sp_helpsrvrolemember sp_helpstats sp_helpsubscriberinfo sp_helpsubscription sp_helpsubscription_properties sp_helpsubscriptionjobname sp_helptext sp_helptrigger sp_helpuser
To run one of these, use the format:
EXEC stored procedure name ‘optional parameters’; GO
I’ll cover these in the next few tutorials in more depth, but there are a few I want to call out here. You can run sp_help and then an object name as the parameter.
One of these stored procedures looks promising — at first, anyway. It’s called sp_helpserver, but other than listing out just a couple of very basic pieces of information I don’t find it very useful. I’ll show you a better way to get specific server information in a moment.
One of the most interesting stored procedures in the sp_help family is sp_helpdb. It shows all the databases on a system, and select information about them. By adding the name of the database, you get specific information, like this:
EXEC sp_helpdb 'master'; --show a specific database and more infoGO
Another useful piece of information is to know the location of the files for a database. You can do that with this sp_help stored procedure:
EXEC sp_helpfile 'master'; --files for the databaseGO
Inside any database, there are several other objects — some that hold data, like tables, and others that run code to provide data, like views and stored procedures. There’s a stored procedure that will show you the code — it’s called sp_helptext. All you have to do is pass it the name of a view or stored procedure, and it will show you the code that runs it. For instance, one the views in the master database is called INFORMATION_SCHEMA.TABLES. You can see how it works by using this command:
EXEC sp_helptext 'INFORMATION_SCHEMA.TABLES' ; --dissects views and stored proceduresGO
Moving on to the security area of the server, there are lots of ways to list the logins, and the database users connected with them:
EXEC sp_helplogins; --Show logins to the serverGO EXEC sp_helpsrvrolemember; --shows who is in which server roleGO EXEC sp_helpuser; --show all users in the databaseGO EXEC sp_helpuser 'dbo'; --show specific user infoGO
System Metadata
Sometimes you want to compare a value or work with a system in a certain way, so having a query that can return a single value is more useful than the help stored procedures. For instance, you might want to find out if a system has Full Text Indexing turned on and so forth.
This query uses the SERVERPROPERTY function, and returns everything that SQL Server 2000 knows about. It also works in 2005 and 2008, but those versions have even more information that you can find using this function — Books Online has all of the details:
/* General Server Properties */ SELECT SERVERPROPERTY('servername') AS 'ServerName' ,SERVERPROPERTY('Collation') AS 'Collation' ,SERVERPROPERTY('Edition') AS 'Edition' ,SERVERPROPERTY('Engine Edition') AS 'EngineEdition' ,SERVERPROPERTY('InstanceName') AS 'InstanceName' ,SERVERPROPERTY('IsClustered') AS 'Clustered' ,SERVERPROPERTY('IsFullTextInstalled') AS 'FullTextInstalled' ,SERVERPROPERTY('IsIntegratedSecurityOnly') AS 'SeucityMode' ,SERVERPROPERTY('IsSingleUser') AS 'SingleUser' ,SERVERPROPERTY('IsSyncWithBackup') AS 'Replication' ,SERVERPROPERTY('LicenseType') AS 'LicenseType' ,SERVERPROPERTY('MachineName') AS 'MachineName' ,SERVERPROPERTY('NumLicenses') AS 'NumberOfLicenses' ,SERVERPROPERTY('ProcessID') AS 'WindowsProcessID' ,SERVERPROPERTY('ProductVersion') AS 'ProductVersion' ,SERVERPROPERTY('ProductLevel') AS 'ProductLevel'
We will use these functions more in the next set of tutorials.
Database Metadata
Similarly, you can find out a lot of information about a database using two functions: DATABASEPROPERTY and DATABASEPROPERTYEX. The DATABASEPROPERTYEX is more comprehensive. Here’s another SQL Server 2000 query that shows a lot of information using these functions:
/* General Database Properties - change the name of the database to what you want */ SELECT DATABASEPROPERTY('master', 'IsAnsiNullDefault') AS 'AnsiNullsDefault' ,DATABASEPROPERTY('master', 'IsAnsiNullsEnabled') AS 'AnsiNullsEnabled' ,DATABASEPROPERTY('master', 'IsAnsiWarningsEnabled') AS 'AnsiWarningsEnabled' ,DATABASEPROPERTY('master', 'IsAutoClose') AS 'AutoClose' ,DATABASEPROPERTY('master', 'IsAutoCreateStatistics') AS 'AutoCreateStats' ,DATABASEPROPERTY('master', 'IsAutoShrink') AS 'AutoSchrink' ,DATABASEPROPERTY('master', 'IsAutoUpdateStatistics') AS 'AutoUpdateStats' ,DATABASEPROPERTY('master', 'IsBulkCopy') AS 'BulkCopyEnabled' ,DATABASEPROPERTY('master', 'IsCloseCursorsOnCommitEnabled') AS 'CloseCursorCommit' ,DATABASEPROPERTY('master', 'IsDboOnly') AS 'DBOOnlyMode' ,DATABASEPROPERTY('master', 'IsDetached') AS 'Detached' ,DATABASEPROPERTY('master', 'IsEmergencyMode') AS 'EmergencyMode' ,DATABASEPROPERTY('master', 'IsFulltextEnabled') AS 'FullText' ,DATABASEPROPERTY('master', 'IsInLoad') AS 'LoadingData' ,DATABASEPROPERTY('master', 'IsInRecovery') AS 'InRecoveryMode' ,DATABASEPROPERTY('master', 'IsInStandBy') AS 'StandyMode' ,DATABASEPROPERTY('master', 'IsLocalCursorsDefault') AS 'LocalCursors' ,DATABASEPROPERTY('master', 'IsNotRecovered') AS 'NotRecovered' ,DATABASEPROPERTY('master', 'IsNullConcat') AS 'NullConcatentation' ,DATABASEPROPERTY('master', 'IsOffline') AS 'OfflineMode' ,DATABASEPROPERTY('master', 'IsQuotedIdentifiersEnabled') AS 'QuotedIdentifiers' ,DATABASEPROPERTY('master', 'IsReadOnly') AS 'ReadOnlyMode' ,DATABASEPROPERTY('master', 'IsRecursiveTriggersEnabled') AS 'RecursiveTriggers' ,DATABASEPROPERTY('master', 'IsShutDown') AS 'ShutdownMode' ,DATABASEPROPERTY('master', 'IsSingleUser') AS 'SingleUserMode' ,DATABASEPROPERTY('master', 'IsSuspect') AS 'MarkedSuspect' ,DATABASEPROPERTY('master', 'IsTruncLog') AS 'RecoveryModel' ,DATABASEPROPERTY('master', 'Version') AS 'Version' /* Extended Database Properties */ ,DATABASEPROPERTYEX('master', 'Collation') AS 'Collation' ,DATABASEPROPERTYEX('master', 'IsAnsiPaddingEnabled') AS 'AnsiPadding' ,DATABASEPROPERTYEX('master', 'IsArithmeticAbortEnabled') AS 'ArthiAbort' ,DATABASEPROPERTYEX('master', 'IsMergePublished') AS 'MergeReplication' ,DATABASEPROPERTYEX('master', 'IsNumericRoundAbortEnabled') AS 'NumericRoundAbort' ,DATABASEPROPERTYEX('master', 'IsSubscribed') AS 'SubscribedToReplication' ,DATABASEPROPERTYEX('master', 'IsTornPageDetectionEnabled') AS 'TornPageDetection' ,DATABASEPROPERTYEX('master', 'Recovery') AS 'RecoveryModel' ,DATABASEPROPERTYEX('master', 'Status') AS 'Status' ,DATABASEPROPERTYEX('master', 'Updateability') AS 'UpdateStatus' ,DATABASEPROPERTYEX('master', 'UserAccess') AS 'UserAccessType'
In the next tutorial, I’ll show you a few more ways to get information about SQL Server.
InformIT Articles and Sample Chapters
There is a lot more information on the system tables in SQL Server Building Blocks and Server Settings.
Books and eBooks
My good friend Richard Waymire has a rundown on this same kind of information, all the way back in SQL Server version 7, in Sams Teach Yourself Microsoft SQL Server 7 in 21 Days, available in the (free) InformIT Reference Library.
Online Resources
The sp_help stored procedure does a lot more than I’ve documented here. Check out this reference for more.