Welcome to MSDN Blogs Sign in | Join | Help
Light weight SQL Server procedure auditing without using SQL Server auditing

A week ago a colleague asked for different options to do audit stored procedure calls. With his allowance I will post the question here.

“The applications used at the customer site all access these databases using stored procedures (only, as far as I know) and are written using .NET.

The customer is interested in increasing the amount of logging they are doing to capture the syntax that is hitting the databases.

Specifically, the customer is interested in capturing RPC events that will show them the parameters being fired at the databases, e.g. someSproc ‘1’,’2’,’3’, someSproc ‘2’,’2’,’2’, someSproc ‘3’ and so on.

The customer intends to store the syntax in a database for analysis.”

So the overall question was, how can we do auditing of the procedure calls. My answer to this was:

“Without putting the load for logging on the server the customer could implement another stack in their application doing logging before actually doing the execution of the procedures. If they are not sure if only the application is doing executions against the database, bypassing the new logging stack or they cannot change the code you will have to do the logging at the server. Depending of the SQL Server version you have several options:

  • SQL Server 2000/2005:
    • Do a server side tracing, be aware that this is not a light weight option to do
    • Change your stored procedures to include the logging of the execution
  • SQL Server 2008
    • The two options from above
    • Using extended events (sqlserver > Analytic > execution > rpc_starting) (But they have not the option to track the parameters)
    • Using SQL Server Audit (Depending on how they execute the procedure the parameters might not be tracked)"

So boiled down and due to the problem that the customer used SQL Server 2005, there was not much option to do. SQL Server 2008 could have been used with the new auditing functionality, but the version upgrade was out of scope and another solution need to be found.

So we headed for the second option, the “Change your stored procedures to include the logging of the execution”. I suggested him to add something in the stored procedures catching the execution of the procedure as well as the passed parameters. Well, having hundreds of procedures as in this situation, its really hard to maintain and implementation and can get very tedious. An automatic solution had to be done to implement logging and to honor the different parameter loggings, as well as to be able to change that after once implemented if e.g. the parameters or the calling logic to the log procedure changes.

The attached solution will do the hard work for you, identify the part in the stored procedure where the logging is done (immediately after the AS statement in the stored proc), remove any logging (if already inserted earlier and you might changed the logic of the logging) and add the appropriate logging part. Open the solution and go through the steps mentioned there 1-6. It is really easy and easy to apply to your existing logic. You will get all the benefits of knowing which procedure was called, when, from whom with which parameters. Be ware that due to privacy concerns you might not be allowed to gather all the personalized data and might need to change the procedure which does the logging and the persistence to the database.

Feel free to give some feedback about the lightweight way of adding logging to your database, I would really appreciate it (either good or bad :-) )

 

-Jens

The “magic” about trustable relationships with NULL and NOT IN

 

As a follow-up to my former post “Why you shouldn't´trust the friendship of NULL and the (NOT) IN predicate” I asked Paul Randal during our SQL Server Master training about the possible internal reason that the results can vary if you have NULL in the IN-list. The explanation is that easy that I did not even think of until Paul redirected my request to Bob Beauchemin who brought me back on the right track.

(Now) Sure that the

SomeColumn NOT IN (1,2,NULL)

will evaluate to

SomeColumn != 1 AND
SomeColumn != 2 AND
SomeColumn != NULL (which will evaluate to “unknown” as true and true and unknown will be unknown)

A simple sample would be the following:

   1:  SET ANSI_NULLS OFF
   2:   
   3:  Select 1
   4:  WHERE 2 NOT IN (1, NULL)
   5:   
   6:  -----------
   7:  1
   8:   
   9:  (1 row(s) affected)
  10:   
  11:   
  12:  SET ANSI_NULLS ON
  13:   
  14:  Select 1
  15:  WHERE 2 NOT IN (1, NULL)
  16:   
  17:  -----------
  18:   
  19:  (0 row(s) affected)

That might remind you at the ANSI NULLS setting to control the behavior of the NULL comparison. As you can see in line 1, after setting that off, the results will return the values treating NULL as a comparable value and returning false for NULL, evaluating the whole condition to true and displaying the value.

-Jens

Consuming SSIS package data in Reporting Services (and using Web Services in addition) Part 2

(Sample project attached to the blog entry !) 

Having stated the need for getting data from SSIS packages in Reporting Service in my last post (Part 1), we now want to concentrate how to achieve the implementation. SQL Server Integration Services is not by default accessible from Reporting Service. You will have to do some preparations in order to make it visible through the Reporting Designer surface in Visual Studio. The following article describes the directions how to do that in a good detail:

Configuring Reporting Services to Use SSIS Package Data

Boiled down, the RSReportDesigner.config will have to be configured to offer the option in Visual Studio. After changing the settings, make sure to restart Visual Studio and to apply the changes made to the configuration file.

After that you will be able to find the SSIS option in the DropDownBox of the Report database properties window:

image

(The Connection string reads: –f C:\Projects\Blogs\FY09\GetStockQuotes\Package.dtsx)

Getting data and combing information in SSIS from multiple data sources

To combine most of the technologies I created the following scenario which can be also downloaded in the solution file attached to the blog post. As being not directly accessible a back book system in a bank is producing portfolio information and send them to plain text files. As for some reason the one system only has the WKN and the other back book system has the ticker meta data information (which is also available in a flat file), the data will have to be mapped together before actually getting the quotes from the external source. After having done the Merge join to get the information together, an external service is called for getting real time information data for the quotes. (In this scenario I used an external service Xignite which can be used within a free trial) After getting the quotes, the data will be send to a DataReader destination where it can be consumed by external components like .Net Framework application and Reporting Services. You can also run the SSIS package alone just for test reasons and to get familiar with SSIS working with WebServices. I added additional tracing information to the pipeline to be able to see the time needed to request the information from the service.

If you are not familiar with getting information from web service within SSIS, see the following article from Jamie with an excellent video which will guide you from end to end and see how the package here was done.

The following picture shows the simple data flow task used in the solution.

image

After having done the SSIS part you can create the report using the data from the SSIS package. As mentioned above this is also a straight forward process if you enabled the SSIS extension as a data source in the Reporting Services config files. The connection string for the SSIS package is the patht of the SSIS package.

After that you can walkthrough creating a data source, seeing the information in the dataset viewer and drag and drop the information to the report. Be aware that due to the extra transformations and requests to the cloud, the report might take a bit longer than loading directly the information from a local data source like a SQL Server database but will give you the flexibility to integrate information from the web in your Reporting Services reports.

The simple reports looks like the following in Visual Studio Designer:

image

For you to make the sample work in your environment, make sure you change the following settings to your environment:

Open the SSIS package:

  • Change the Loginname and the Password for the StockService (If you do not have a login yet, you can get a free trial from the website). The credential information is saved in variables (which also can be passed to the SSIS package not to store them permanently in the package)

image

  • Change the Directory to the flat files provided. These files exists in the solution containing sample data and be referenced from the SSIS package.

Open the Report:

  • Change the path to the SSIS package from the Shared Data source component

image

Done. Now you should be able to see the same design (Sure with another data as quotes will change :-) )

If you have any question or something is not clear about this approach, feel free to contact me.

 

 

-Jens

Getting feedback / progress from batches and stored procedures

Ever wanted to get feedback and interim results like a progress from a stored procedure ? Well, not that easy as the results such as PRINT information is send after the batch has been completed. If you want to get information back from your batches you can use the property FireInfoMessageEventOnUserErrors in conjunction with the InfoMessage event handler to get information back as soon as SQL Server is able to send something.

Using RaisError (Ever asked yourself why there is only one “e” in Raiserror ? That is from the old Sybase days where two same characters were cut back to one only :-) ) can help in that case. You will have to be aware that RaisError used with the wrong severity (second parameter) might terminate the batch or the connection, severities less or equal to 10 will just send an informational message to the calling stack.

RAISERROR (Message, Severity, State) –> e.g. RAISERROR (‘SomeMessageForYou’,0,10)

The state is for custom usage, it was meant to give a hint to the caller where the procedure / batch terminate or called the event. This will be also the way we will use this in a small example to show how we can get back information to the caller. Although the Information messages are a good way to send life signals back to the client, SQL Server will batch these informational messages also together up to the end of the batch unless you use the WITH NOTWAIT option of the RaisError.

Basically at the client, the code we are using is the following:

 
conn.FireInfoMessageEventOnUserErrors = true;
conn.InfoMessage += new SqlInfoMessageEventHandler(conn_InfoMessage);
 

In the conn_InfoMessage method we are evaluating the information from the thrown “errors”, determine the calling batch from the Message text of the error and the progress from the state.

 

            if (Message == "Batch1")
           {
                progressBar1.Value = PercentageComplete;
            }
            else if (Message == "Batch2")
            {
                progressBar2.Value = PercentageComplete;
            }

 

As the following sample application shows (attached to the Blog post, we will be able to give the caller information back about the current state of the execution. The downside to that is for sure that you will have to implement additional coding in your batches / procedures.

 

image

 

-Jens

A long (but not missed) friend revisited, prefixing stored procedures with SP_

Coming as a simple sample with PBM (creating a policy with a condition that procedure names shouldn't´t start with SP_) and getting an interesting question in one of my classes, I wanted to revisit the question about the yet in some places existing naming convention of prefixing the procedure with SP_. To keep a long story short, don't do this at home or your work. It will show you the basics of this problem and further questions which came up.

If you need additional information about this, you can have a look at the following articles:

Should I Use the sp_ Prefix for Procedure Names?

There is also a design rule for code review available on this:

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

 

The prefix SP_ indicates for SQL Server that this is a (S)ystem(P)rocedure_ not a stored procedure.

Therefore SQL Server will assume that this procedure lives in the master database, looks for a compiled plan, does not find one, raises a Cache miss event and recompiles the procedure. Well, for the most of you, you think “Producing a new plan, that shouldn't be a big deal”. Well yes – it is. When it comes to compiling plans of whole procedures SQL Server will need to place a schema lock (to make sure that the procedure wont change in between) and wont enable the other callers (who also need to make a compile due to the above mentioned reasons) to recompile the procedure as well as they will queue up in the schema lock chain. Not that you will lose all the functionality like statement level recompilation (a nice feature since SQL Server 2005), for heavy workloads and a often called procedure, this isn't scalable AT ALL.

 

OK, the easiest sample can be seen here:

 

CacheMiss_0

 

You see that a Cache Miss is produced once the procedure is called form the batch.

 

The first question was “SQL Server will be smart enough to know that the current database is meant and not the master database if you place the schema owner in front of the procedure name, right ?”.

 

-Well – no. SQL Server still assumes that this is a procedure that lives in master database and will first search here.

 

 CacheMiss_1

 

The second question was “SQL Server will be smart enough to know that the current database is if you specify the procedure call with a three-part-name, explicitly calling the procedure in the database, right ?”.

 

-Well – no. SQL Server resists to think that this procedure that lives in that database and will have a look in the master database first.

 

 CacheMiss_2

 

The conclusion to this is, that there is NO reason to name your procedure with SP_ unless you want to procedure to be compiled upon every call, and hey, we can do better than this by using the compiling hints like “WITH RECOMPILE”. See more recompilation hints on this link here:

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

 

-Jens

Perception vs. reality, how to keep your database schema changes of different environments aligned with VSTSDB and VSDBCMD.EXE Part 1

Yesterday at the PASS conference I met an former colleague and he asked me about a particular challenge applying changes to the production database from Visual Studio Team System Database Edition. As he didn’t know about the new features of the deployment utility VSDBCMD.EXE, I decided to make a blog post series and explain the needs, mechanics and ways to do that.

In most scenarios in the database lifecycle you have several environments, development, testing, user acceptance test (UAT), Pre-production, Production. Depending on the methodology you are using it can be more or less. In most environment there is a strict separation of duties due to the reason that it has to be comprehensible who did changes and to restrict the access to the sensitive data which exists e.g. on the pre-prod and prod systems. This comes with the consequences that e.g. the developer has no access on pre-production, UAT and maybe production and may not be able to use his full tool suite to do changes or monitor the changes. Maybe there are also no development tools allowed in the production system which also limits the DA to leverage the functionality of those.

 

So, what does that mean for database development ?

Once you created your database and sent it to the DBA to install the database with its schema (lets call that time 0), you are completely disconnected from your database project. During the database lifecycle you sure always have the version of time0 but as everyone knows, changes might not occur only in the database project in the development environment, some of them are also done in a hotfix manner (at time1) directly on the production server by the DBA or by the developer through the dba itself with no update to the database project at all.

 

Well, you might say two-way schema updates are not a problem,but let me give you an example

I will pick up the example mentioned above. The database is developed and deployed at time0, during the production someone notice that it might be good to place an additional index on a column (time 1). Once the database is running smoothly, the DBA who did the changes forgets to inform the database developers to put in the index information in the database project or cannot do this by himself as he either has no access to the database project or does not care about development stuff (at this time I want to encourage all DBAs to really have a look at VSTSDB, it can, and will if you use it, make your life much more easy and is a perfect tool to administer your changes). Later at time 2 additional changes have been made to the database including a change which includes the simple increase of the above post-indexed column from the data type from INT to BIGINT with even no data motion (Data motion is when the project system and you can also see that in SSMS it has to do a DROP and CREATE table with an intermediate temp table storing the data and the new schema). If the changes of time 1 didn’t make it to the project system and you create your scripts doing a schema compare to the developer known time 0 schema, you will get an error during the deployment process of the changes of time 2, because an additional index will stop the ALTER to be applied successfully with something like the following error message:

 

Msg 5074, Level 16, State 1, Line 2
The index 'IX_SomeIndex’ is dependent on column 'SomeColumn'.
Msg 4922, Level 16, State 9, Line 2
ALTER TABLE ALTER COLUMN SomeColumn failed because one or more objects access this column.

 

Well, yes this is a problem now and at least at this time makes you think if additional changes didn’t make it into the project as well.

Ok, how to deal with that, some of them could be:

 

  • Use a strict development cycle to not make changes to databases unless the changes are also in the project system (well, this is the perfect world which doesn’t exists, even if you have really *hot* hotfixes in place)
  • Instruct the DBAs or the people in charge of the databases to make sure that the additional schema changes applied to the database will be also merge to the database project. (Better solution, but this also leaves a bit of uncertainty if really everyone worked 100% correctly)
  • Do a direct and online (In the meaning that the environment where VSTSDB live is the same as the production environment or there is a connection between them) compare with production database to have a *realtime* comparison (I will comment in this option later)
  • Do something like an offline compare where you compare the “source of truth” (for the schema this is the database project) with the production database without having a direct connection to the production database and apply changes directly or review changes before applying them. (That looks pretty good actually, lets see later how this works for us)

 

In the next part, we will take a look at some of the options to make sure which is the best fit for your environment.

 

-Jens

Consuming SSIS package data in Reporting Services (and using Web Services in addition) Part 1

 

There are several scenarios where you want to extract data from different data sources and combine them within a report.

Unfortunately if you have structure like a Table or Tablix, you can only bind the objects data source to only one dataset. This is fine for queries using one data source, but imagine you want to grab data from several data sources. You might think that this is also possible in SQL Server by using either OPENROWSET, OPENQUERY or even linked server. Yes - you are right, but beside the administrative hassles you would have to go through by convincing the admin to create those LINKED Servers and maintain them through the lifecycle of the database you sometime reach the limits of queries that can be done in TSQL like complex calculations including external DLLs like .Net Framework Assemblies. Sure you can also extend your database with these assemblies, but here were are again at the administrative part and the arguments you will have to pull up for the admin to install and manage them (and turn on the CLR integration on the server)

 

As a intermediate summary:

You can use the solution if you want to consume data in the report which

  • consist of several data sources which have to be combined in one dataset
    • you cannot use linked server for various mentioned reasons
    • you cannot use other connection technologies like OPENROWSET/OPENDATASOURCE
    • you do not have SQL Server at all as a data storage for your data source, e.g. source is a text file
    • (…)
  • use external resources like .Net Assemblies
    • you cannot use or want to use .Net Assemblies in your SQL Server as installed assemblies
    • The level of access you need does not allow you to use the assembly in SQL Server (as per company restrictions)
    • (…)
  • mimic calculations / conversions or other stuff which already exists in SSIS
  • you need to do adhoc calculations or want to display data which are not persisted and you cannot achieve in SSRS

 

You should not use the solution if:

  • you don’t want to use SQL Server Integrations Services (please tell me why ! :-) )
  • you have reports that do not allow any latency of executing a Integration Service package and you would be quicker with easier solutions

 

If you see yourself in these points mentioned or are  just curious for the read watch out for the next post I will be doing about this.

 

Update: Here is part 2

 

-Jens

VSTS 2008 Database Edition GDR R2 is released

 

The second release of the GDR was published today, it includes bug fixes as well as additions.

See the Release Notes for more information:

http://download.microsoft.com/download/0/A/E/0AE1153A-8798-474A-93E6-D19299F37C8B/GDR_R2_Release_Notes.mht

 

It is available in the following languages and will upgrade former bits and projects automatically.

 

English

French

Italian

German

Chinese Traditional

Chinese Simplified

Korean

Japanese

 

Download the bits from here: http://www.microsoft.com/downloads/details.aspx?FamilyID=bb3ad767-5f69-4db9-b1c9-8f55759846ed&displaylang=en

 

-Jens

Getting relational data as well formed XML structures out of SQL Server

 

I saw many times people having problems working with XML structures in SQL Server. It is that easy, even more with the new functionality in SQL Server 2005>. Most times people try to take the XML line with the least resistance and effort which would be XML AUTO. While XML AUTO is easy an fast to implement it might not give you the information in a way you want to work with in your application.

 

Let take a sample to see the outcomings (using the row constructors functionality for our base data):

 

Select * From
(
     Values
          ('JOHN','SMITH'),
          ('JANE','BROWN'),
          ('JOE','GREEN')

) Names(First_Name, Last_Name)
FOR XML AUTO

 

will transform to:

 

<Names First_Name="JOHN" Last_Name="SMITH" />
<Names First_Name="JANE" Last_Name="BROWN" />
<Names First_Name="JOE" Last_Name="GREEN" />

 

For those people directly spooling the information to a file, this will bring back an ugly XML error in almost any XML viewer (like IE):

 

The XML page cannot be displayed

Cannot view XML input using XSL style sheet. Please correct the error and then click the Refresh button, or try again later.


Only one top level element is allowed in an XML document. Error processing resource (…)

 

So you need a root element. The root element is specified by the syntax ROOT (Suprise ?). So if you want the “Names” element as the root, use the following syntax.

 

Select * From
(
     Values
          ('JOHN','SMITH'),
          ('JANE','BROWN'),
          ('JOE','GREEN')

) Names(First_Name, Last_Name)
FOR XML AUTO, ROOT('Customers')

 

<Customers>
  <Names First_Name="JOHN" Last_Name="SMITH" />
  <Names First_Name="JANE" Last_Name="BROWN" />
  <Names First_Name="JOE" Last_Name="GREEN" />
</Customers>

 

Ok, much better, you are ready to open that with IE now. But you maybe do not want the values as attributes, you want them in a separate node PATH? Then you should use the …guess what… the PATH syntax.

 

Select * From
(
     Values
          ('JOHN','SMITH'),
          ('JANE','BROWN'),
          ('JOE','GREEN')

) Names(First_Name, Last_Name)
FOR XML PATH ,ROOT('Names')

 

<Names>
  <row>
    <First_Name>JOHN</First_Name>
    <Last_Name>SMITH</Last_Name>
  </row>
  <row>
    <First_Name>JANE</First_Name>
    <Last_Name>BROWN</Last_Name>
  </row>
  <row>
    <First_Name>JOE</First_Name>
    <Last_Name>GREEN</Last_Name>
  </row>
</Names>

 

Looks already good but the "row" specified is left as an ugly artifact. PATH can have a parameter with specifying the name of the node name.

Select * From
(
     Values
          ('JOHN','SMITH'),
          ('JANE','BROWN'),
          ('JOE','GREEN')

) Names(First_Name, Last_Name)
FOR XML PATH('Customer') ,ROOT('Names')

 

Pretty good now:

 

<Names>
  <Customer>
    <First_Name>JOHN</First_Name>
    <Last_Name>SMITH</Last_Name>
  </Customer>
  <Customer>
    <First_Name>JANE</First_Name>
    <Last_Name>BROWN</Last_Name>
  </Customer>
  <Customer>
    <First_Name>JOE</First_Name>
    <Last_Name>GREEN</Last_Name>
  </Customer>
</Names>

If you need more specific placement of data in the XML tree, like having the information like CustomerID as an attribute in the Customer noe, you would have to use the EXPLICIT keyword which would be implemented deeper in the query.

 

But that´s it for now and for simplicity.

 

-Jens

Getting a list of all facets and its properties

For those struggling as I did for getting the complete list of all facets and its properties available, I went down the dark side of the code (Reflection) and got the methods to extract the information from the PBM framework. As a complete reference (as I couldn't find anything beside the SSMS view on things, I posted that here for you). If anyone needs a more compact format or know of a way to display that in a more convenient way, feel free to get in touch with. 

 

PBM_SSMS_Access

 

Application Role (ApplicationRole)
Description:Exposes properties of the ApplicationRole object.
Evaluated by:Enforce, CheckOnChanges, CheckOnSchedule
TargetTypes are:ApplicationRole

Properties are:
    CreateDate (System.DateTime) [The date and time when the application role was created.]
    DateLastModified (System.DateTime) [The date and time when the application role was last modified.]
    ID (System.Int32) [The ID value that uniquely identifies the application role.]
    DefaultSchema (System.String) [The default schema for the application role.]
    Name (System.String) [Gets or sets the name of the object.(inherited from NamedSmoObject) ]

Asymmetric Key (AsymmetricKey)
Description:Exposes properties of the AsymmetricKey object.
Evaluated by:Enforce, CheckOnChanges, CheckOnSchedule
TargetTypes are:AsymmetricKey

Properties are:
    ID (System.Int32) [The ID value that uniquely identifies the asymmetric key.]
    KeyEncryptionAlgorithm (Microsoft.SqlServer.Management.Smo.AsymmetricKeyEncryptionAlgorithm) [The encryption algorithm used to encrypt the asymmetric key.]
    KeyLength (System.Int32) [The length of the asymmetric key.]
    Owner (System.String) [The name of the database principal that is the owner of the asymmetric key.]
    PrivateKeyEncryptionType (Microsoft.SqlServer.Management.Smo.PrivateKeyEncryptionType) [The encryption type for the private key for the asymmetric key.]
    PublicKey (System.Byte[]) [The public key for the asymmetric key.]
    Sid (System.Byte[]) [The logon security identifier (SID) for the asymmetric key.]
    Thumbprint (System.Byte[]) [The globally unique SHA-1 hash thumbprint for the asymmetric key.]
    ProviderName (System.String) [The provider name for the asymmetric key.]
    Name (System.String) [Gets or sets the name of the object.(inherited from NamedSmoObject) ]

Audit (Audit)
Description:Exposes the properties of the Audit object.
Evaluated by:CheckOnSchedule
TargetTypes are:Audit

Properties are:
    CreateDate (System.DateTime) [Is the date and time when the audit was created.]
    DateLastModified (System.DateTime) [Is the date and time when the audit was last modified.]
    DestinationType (Microsoft.SqlServer.Management.Smo.AuditDestinationType) [Specifies the type of audit destination for the audit.]
    Enabled (System.Boolean) [Is the Boolean property that specifies whether the audit is enabled.]
    FileName (System.String) [Is the file name of the audit destination when the audit destination is a file.]
    FilePath (System.String) [Specifies the file path of the audit when the audit destination is a file.]
    Guid (System.Guid) [Is the GUID value that uniquely identifies the audit.]
    ID (System.Int32) [Is the ID value that uniquely identifies the audit.]
    MaximumFileSize (System.Int32) [Gets or sets the value of maximum size to which the audit file can grow.]
    MaximumFileSizeUnit (Microsoft.SqlServer.Management.Smo.AuditFileSizeUnit) [Gets or sets the unit of the maximum size to which the audit file can grow.]
    MaximumRolloverFiles (System.Int64) [Specifies the maximum number of audit files to retain in the file system.]
    OnFailure (Microsoft.SqlServer.Management.Smo.OnFailureAction) [Specifies the behavior of the audit when it fails to write to the audit destination.]
    QueueDelay (System.Int32) [Specifies the amount of time in milliseconds that can elapse before audit actions are forced to be processed.]
    ReserveDiskSpace (System.Boolean) [Specifies the Boolean property that specifies that a if the file of MAXSIZE should be pre-created on the disk.]
    Name (System.String) [Gets or sets the name of the object.(inherited from NamedSmoObject) ]

Backup Device (BackupDevice)
Description:Exposes properties of the BackupDevice object.
Evaluated by:CheckOnSchedule
TargetTypes are:BackupDevice

Properties are:
    BackupDeviceType (Microsoft.SqlServer.Management.Smo.BackupDeviceType) [The type of backup device of the backup device.]
    PhysicalLocation (System.String) [The path to the device or operating system file that represents the physical backup location.]
    SkipTapeLabel (System.Boolean) [Specifies whether to check that the tape label is correct or not.]
    Name (System.String) [Gets or sets the name of the object.(inherited from NamedSmoObject) ]

Broker Priority (BrokerPriority)
Description:Name of the Servie Broker priority.
Evaluated by:CheckOnSchedule
TargetTypes are:BrokerPriority

Properties are:
    ContractName (System.String) [Name of a contract if the conversation priority applies to a conversation.]
    ID (System.Int32) [Gets the ID value that uniquely identifies the broker priority.]
    LocalServiceName (System.String) [Name of local service if the conversation priority applies to a conversation endpoint.]
    PriorityLevel (System.Byte) [Priority level assigned to the priority.]
    RemoteServiceName (System.String) [Specifies the name of remote service if the conversation priority applies to a conversation endpoint.]
    Name (System.String) [Gets or sets the name of the object.(inherited from NamedSmoObject) ]

Broker Service (BrokerService)
Description:Name of the service. This is an address that is used in Service Broker conversations.
Evaluated by:CheckOnSchedule
TargetTypes are:BrokerService

Properties are:
    ID (System.Int32) [Gets the ID value that uniquely identifies the broker service.]
    IsSystemObject (System.Boolean) [Gets the Boolean property that specifies whether the message type is a system object. ]
    Owner (System.String) [The database principal that owns the Service Broker service.]
    QueueName (System.String) [Name of the queue that is used to receive messages sent to the service.]
    QueueSchema (System.String) [Name of the schema to which the queue belongs]
    Name (System.String) [Gets or sets the name of the object.(inherited from NamedSmoObject) ]

Certificate (Certificate)
Description:Exposes properties of the Certificate object.
Evaluated by:CheckOnSchedule
TargetTypes are:Certificate

Properties are:
    ActiveForServiceBrokerDialog (System.Boolean) [Gets or sets the active for service broker dialog property of Certificate.]
    ExpirationDate (System.DateTime) [Gets the expiration date property of Certificate.]
    ID (System.Int32) [Gets the ID value that uniquely identifies the Certificate.]
    Issuer (System.String) [Gets the issuer property of Certificate.]
    Owner (System.String) [Gets or sets the owner property of Certificate.]
    PrivateKeyEncryptionType (Microsoft.SqlServer.Management.Smo.PrivateKeyEncryptionType) [Gets the private key encryption property of Certificate.]
    Serial (System.String) [Gets the serial property of Certificate.]
    Sid (System.Byte[]) [Gets the sid property of Certificate.]
    StartDate (System.DateTime) [Gets start date property of Certificate.]
    Subject (System.String) [Gets start subject property of Certificate.]
    Thumbprint (System.Byte[]) [Gets the thumbprint property of Certificate.]
    LastBackupDate (System.DateTime) [Gets the date and time when the certificate was last backed up.]
    Name (System.String) [Gets or sets the name of the object.(inherited from NamedSmoObject) ]

Credential (Credential)
Description:Exposes properties of the Credential object.
Evaluated by:CheckOnSchedule
TargetTypes are:Credential

Properties are:
    CreateDate (System.DateTime) [Gets the create date property of Credential.]
    DateLastModified (System.DateTime) [Gets the date last modified property of Credential.]
    ID (System.Int32) [Gets the ID value that uniquely identifies the Credential.]
    Identity (System.String) [Gets or sets the identity property of Credential.]
    MappedClassType (Microsoft.SqlServer.Management.Smo.MappedClassType) [Gets the mapped class type property of Credential.]
    ProviderName (System.String) [Gets the provider name property of Credential.]
    Name (System.String) [Gets or sets the name of the object.(inherited from NamedSmoObject) ]

Cryptographic Provider (CryptographicProvider)
Description:Exposes properties of the CryptographicProvider object.
Evaluated by:CheckOnSchedule
TargetTypes are:CryptographicProvider

Properties are:
    AsymmetricKeyExportable (System.Boolean) [Gets the Boolean property that specifies if the Asymmetric keys created using the provider are exportable.]
    AsymmetricKeyImportable (System.Boolean) [Gets the Boolean property that specifies if the Asymmetric keys created using the provider are importable.]
    AsymmetricKeyPersistable (System.Boolean) [Gets the Boolean property that specifies if the Asymmetric keys created using the provider are persistable.]
    AsymmetricKeySupported (System.Boolean) [Gets the Boolean property that specifies if the Asymmetric keys can be created using the provider.]
    AuthenticationType (Microsoft.SqlServer.Management.Smo.ProviderAuthenticationType) [Gets the authentication type supported by the provider.]
    DllPath (System.String) [Gets the dll path for the provider.]
    Enabled (System.Boolean) [Gets or sets the Boolean property that specifies if the provider is enabled.]
    ID (System.Int32) [Gets the ID value that uniquely identifies the cryptographic provider.]
    ProviderGuid (System.Guid) [Gets the GUID value that uniquely identifies the cryptographic provider.]
    SymmetricKeyExportable (System.Boolean) [Gets the Boolean property that specifies if the Symmetric keys created using the provider are exportable.]
    SymmetricKeyImportable (System.Boolean) [Gets the Boolean property that specifies if the Symmetric keys created using the provider are importable.]
    SymmetricKeyPersistable (System.Boolean) [Gets the Boolean property that specifies if the Symmetric keys created using the provider are persistable.]
    SymmetricKeySupported (System.Boolean) [Gets the Boolean property that specifies if the Symmetric keys can be created using the provider.]
    Name (System.String) [Gets or sets the name of the object.(inherited from NamedSmoObject) ]

Data File (DataFile)
Description:Exposes properties of the DataFile object.
Evaluated by:CheckOnSchedule
TargetTypes are:DataFile

Properties are:
    AvailableSpace (System.Double) [Gets the amount of available space in the data file in kilobytes. ]
    FileName (System.String) [Gets or sets the data file name. ]
    Growth (System.Double) [Gets or sets the growth increment for the data file in kilobytes or percent.  ]
    GrowthType (Microsoft.SqlServer.Management.Smo.FileGrowthType) [Gets or sets the growth type for the data file in kilobytes or percent. ]
    ID (System.Int32) [Gets the ID value that uniquely identifies the data file. ]
    IsPrimaryFile (System.Boolean) [Gets the Boolean property value that specifies whether the data file is the primary file of the database. ]
    MaxSize (System.Double) [Gets or set the maximum size to which the data file can grow in kilobytes. ]
    Size (System.Double) [Gets or sets the current size of the data file in kilobytes. ]
    UsedSpace (System.Double) [Gets the amount of used space in the data file in kilobytes. ]
    IsOffline (System.Boolean) [Gets the Boolean property value that specifies whether the data file is offline or not. ]
    IsReadOnly (System.Boolean) [Gets the Boolean property value that specifies whether the data file is read-only or can be updated. ]
    IsReadOnlyMedia (System.Boolean) [Gets the Boolean property value that specifies whether the data file is stored on read-only media. ]
    IsSparse (System.Boolean) [Gets the Boolean value that specifies whether the data in the data file is sparse or dense. ]
    Name (System.String) [Gets or sets the name of the object.(inherited from NamedSmoObject) ]

Database (Database)
Description:Exposes properties of the Database object.
Evaluated by:CheckOnSchedule
TargetTypes are:Database

Properties are:
    ActiveConnections (System.Int32) [The number of active connections to the database.]
    AutoClose (System.Boolean) [Specifies whether the AUTOCLOSE database option is active.]
    AutoShrink (System.Boolean) [Specifies whether the AUTOSHRINK database option is active.]
    CompatibilityLevel (Microsoft.SqlServer.Management.Smo.CompatibilityLevel) [The compatibility level for the database.]
    CreateDate (System.DateTime) [The date that the database was created.]
    DataSpaceUsage (System.Double) [The space used by the data in the database.]
    DboLogin (System.Boolean) [Specifies whether the current user is logged on as the database owner (DBO).]
    DefaultFileGroup (System.String) [The default file group used by the database.]
    DefaultSchema (System.String) [The default schema of the user.]
    ID (System.Int32) [The database ID value that uniquely identifies the database.]
    IndexSpaceUsage (System.Double) [The space used by the indexes in the database.]
    IsAccessible (System.Boolean) [Specifies whether the database can be accessed.]
    IsDbAccessAdmin (System.Boolean) [Specifies whether the current user is a member of the DbAccessAdmin database role.]
    IsDbBackupOperator (System.Boolean) [Specifies whether the current user is a member of the DbBackupOperator database role.]
    IsDbDatareader (System.Boolean) [Specifies whether the current user is a member of the DbDatareader database role.]
    IsDbDatawriter (System.Boolean) [Specifies whether the current user is a member of the DbDatawriter database role.]
    IsDbDdlAdmin (System.Boolean) [Specifies whether the current user is a member of the DbDdlAdmin database role.]
    IsDbDenyDatareader (System.Boolean) [Specifies whether the current user is a member of the DbDenyDatareader database role.]
    IsDbDenyDatawriter (System.Boolean) [Specifies whether the current member is a member of the DbDenyDatawriter database.]
    IsDbOwner (System.Boolean) [Specifies whether the current user is a member of the DbOwner database role.]
    IsDbSecurityAdmin (System.Boolean) [Specifies whether the current user is a member of the DbSecurityAdmin database role.]
    IsFullTextEnabled (System.Boolean) [Specifies whether the database is enabled for full-text search.]
    IsSystemObject (System.Boolean) [Specifies whether the database is a system object or a user-defined database.]
    LastBackupDate (System.DateTime) [The date and time when the database was last backed up.]
    LastDifferentialBackupDate (System.DateTime) [The date and time when the last differential backup was performed.]
    LastLogBackupDate (System.DateTime) [The date and time when the transaction log was last backed up.]
    Owner (System.String) [The database principal that is the owner of the database.]
    PrimaryFilePath (System.String) [The path and name of the operating system directory that contains the primary file for the database.]
    ReplicationOptions (Microsoft.SqlServer.Management.Smo.ReplicationOptions) [The active replication settings for a database,]
    Size (System.Double) [The size of the database in megabytes.]
    SpaceAvailable (System.Double) [The available space in the database in kilobytes.]
    Status (Microsoft.SqlServer.Management.Smo.DatabaseStatus) [The database status.]
    UserName (System.String) [The name of the database user.]
    AnsiNullDefault (System.Boolean) [Specifies whether the ANSI_NULL_DEFAULT database option is active.]
    AnsiNullsEnabled (System.Boolean) [Specifies whether the ANSI_NULLS_ENABLED database option is active.]
    AnsiPaddingEnabled (System.Boolean) [Specifies whether the ANSI_PADDING_ENABLED database option is active.]
    AnsiWarningsEnabled (System.Boolean) [Specifies whether the ANSI_WARNING_ENABLED database option is active.]
    ArithmeticAbortEnabled (System.Boolean) [Specifies whether the ARITHMETICABORT database option is active.]
    AutoCreateStatisticsEnabled (System.Boolean) [Specifies whether statistics are automatically created for the database.]
    AutoUpdateStatisticsEnabled (System.Boolean) [Specifies whether statistics are automatically updated for the database.]
    CaseSensitive (System.Boolean) [Specifies whether uppercase letters and lowercase letters are evaluated as equal.]
    CloseCursorsOnCommitEnabled (System.Boolean) [Specifies whether the CURSOR_CLOSE_ON_COMMIT database option is active.]
    Collation (System.String) [The default collation used by the database.]
    ConcatenateNullYieldsNull (System.Boolean) [Specifies whether the CONCAT_NULL_YIELDS_NULL database option is active.]
    DatabaseOwnershipChaining (System.Boolean) [Specifies whether the database ownership chaining is active.]
    IsUpdateable (System.Boolean) [Specifies whether the database can be updated.]
    LocalCursorsDefault (System.Boolean) [Specifies whether the local server cursors are used by default.]
    NumericRoundAbortEnabled (System.Boolean) [Specifies whether the NUMERIC_ROUNDABORT database option is active.]
    PageVerify (Microsoft.SqlServer.Management.Smo.PageVerify) [Specifies the type of page integrity check that Microsoft SQL Server performs when reading database pages.]
    QuotedIdentifiersEnabled (System.Boolean) [Specifies whether identifiers delimited by double quotation marks (" ") are Transact-SQL reserved keywords or contain characters not usually allowed by the Transact-SQL syntax rules.]
    ReadOnly (System.Boolean) [Specifies whether the database is read-only.]
    RecoveryModel (Microsoft.SqlServer.Management.Smo.RecoveryModel) [The recovery model for the database.]
    RecursiveTriggersEnabled (System.Boolean) [Specifies whether recursive triggers are enabled on the database.]
    UserAccess (Microsoft.SqlServer.Management.Smo.DatabaseUserAccess) [The database user access.]
    Version (System.Int32) [The version of the instance of SQL Server that was used to create the database.]
    AutoUpdateStatisticsAsync (System.Boolean) [Specifies whether the AUTOUPDATESTATISTICSASYNC database option is active.]
    BrokerEnabled (System.Boolean) [Specifies whether the Service Broker service is enabled.]
    DatabaseGuid (System.Guid) [The GUID value that uniquely identifies the database.]
    DatabaseSnapshotBaseName (System.String) [The name of the snapshot base for the database.]
    DateCorrelationOptimization (System.Boolean) [Specifies whether the date correlation optimization is active.]
    DefaultFullTextCatalog (System.String) [The default full-text catalog used by the database.]
    IsDatabaseSnapshot (System.Boolean) [Specifies whether the database is a snapshot database.]
    IsDatabaseSnapshotBase (System.Boolean) [Specifies whether the database is the base database for a snapshot database.]
    IsMailHost (System.Boolean) [Specifies whether the database is configured as a mail host.]
    IsMirroringEnabled (System.Boolean) [Specifies whether mirroring is enabled on the database.]
    IsParameterizationForced (System.Boolean) [Specifies whether parameterization is forced on the database.]
    IsReadCommittedSnapshotOn (System.Boolean) [Specifies whether the database is enabled for read-committed isolation using row versioning.]
    IsVarDecimalStorageFormatEnabled (System.Boolean) [Specifies whether the database is enabled for vardecimal storage format.]
    LogReuseWaitStatus (Microsoft.SqlServer.Management.Smo.LogReuseWaitStatus) [The type of operation on which the reuse of transaction log space is waiting.]
    MirroringFailoverLogSequenceNumber (System.Decimal) [The log sequence number at last failover.]
    MirroringID (System.Guid) [The ID value that uniquely identifies the mirroring partnership.]
    MirroringPartner (System.String) [The address of the Database Engine instance that is the partner server for database mirroring.]
    MirroringPartnerInstance (System.String) [The instance of SQL Server on which the mirroring partner is configured.]
    MirroringRedoQueueMaxSize (System.Int32) [The maximum size of the redo queue of the mirror server instance in KB.]
    MirroringRoleSequence (System.Int32) [The role sequence number for primary/backup roles played by the mirroring partners.]
    MirroringSafetyLevel (Microsoft.SqlServer.Management.Smo.MirroringSafetyLevel) [The mirroring safety level.]
    MirroringSafetySequence (System.Int32) [The role sequence number for safety levels for the mirroring partners.]
    MirroringStatus (Microsoft.SqlServer.Management.Smo.MirroringStatus) [The status of the database and the database mirroring session.]
    MirroringTimeout (System.Int32) [The maximum time, in seconds, that the principal server instance waits for a PING message from another instance in the mirroring session before assuming the other instance is disconnected.]
    MirroringWitness (System.String) [The name of the database-engine instance of the database mirroring witness server.]
    MirroringWitnessStatus (Microsoft.SqlServer.Management.Smo.MirroringWitnessStatus) [The status of the mirroring witness server.]
    RecoveryForkGuid (System.Guid) [The GUID value that specifies the recovery fork on which the database is currently active.]
    ServiceBrokerGuid (System.Guid) [The Guid object that uniquely identifies the instance of MicrosoftService Broker.]
    SnapshotIsolationState (Microsoft.SqlServer.Management.Smo.SnapshotIsolationState) [The snapshot isolation state for the database.]
    Trustworthy (System.Boolean) [Specifies whether the trustworthy property is set.]
    ChangeTrackingAutoCleanUp (System.Boolean) [Gets the Boolean property value that specifies whether change tracking data is automatically cleaned up after the configured retention period.]
    ChangeTrackingEnabled (System.Boolean) [Gets the Boolean property value that specifies whether change tracking is enabled.]
    ChangeTrackingRetentionPeriod (System.Int32) [Gets the retention period specifying how long the change tracking data is kept in the database if autocleanup is being used.]
    ChangeTrackingRetentionPeriodUnits (Microsoft.SqlServer.Management.Smo.RetentionPeriodUnits) [Gets the unit of time for the change tracking retention period.]
    DefaultFileStreamFileGroup (System.String) [Gets the filegroup name for the default FILESTREAM filegroup.]
    EncryptionEnabled (System.Boolean) [Gets the Boolean property value that specifies whether the database is enabled for transparent data encryption.]
    HonorBrokerPriority (System.Boolean) [Specifies whether the priority is taken into consideration for service broker.]
    IsManagementDataWarehouse (System.Boolean) [Specifies whether the database is configured as a Management Data Warehouse.]
    Name (System.String) [Gets or sets the name of the object.(inherited from NamedSmoObject) ]

Database Audit Specification (DatabaseAuditSpecification)
Description:Exposes the properties of the DatabaseAuditSpecification object.
Evaluated by:CheckOnSchedule
TargetTypes are:DatabaseAuditSpecification

Properties are:
    AuditName (System.String) [Specifies the audit name to which the database audit specification belongs.]
    CreateDate (System.DateTime) [Is the date and time when the database audit specification was created.]
    DateLastModified (System.DateTime) [Is the date and time when the database audit specification was last modified.]
    Enabled (System.Boolean) [Specifies the Boolean property that specifies whether the database audit specification is enabled.]
    Guid (System.Guid) [Is the GUID value of the audit to which the database audit specification belongs.]
    ID (System.Int32) [Is the ID value that uniquely identifies the database audit specification.]
    Name (System.String) [Gets or sets the name of the object.(inherited from NamedSmoObject) ]

Database DDL Trigger (DatabaseDdlTrigger)
Description:Exposes properties of the DatabaseDdlTrigger object.
Evaluated by:CheckOnSchedule
TargetTypes are:DatabaseDdlTrigger

Properties are:
    AnsiNullsStatus (System.Boolean) [Gets or sets the Boolean property value that specifies whether SQL-92 NULL handling is enabled in the data definition language (DDL) trigger. ]
    AssemblyName (System.String) [Gets or sets the name of the assembly that contains the managed code that is executed when the data definition language (DDL) trigger is raised. ]
    BodyStartIndex (System.Int32) [Gets the index value that represents the start of the DDL trigger text body. ]
    ClassName (System.String) [Gets or sets the name of the class in the assembly that contains the managed code that is executed when the data definition language (DDL) trigger is raised. ]
    CreateDate (System.DateTime) [Gets the date and time when the database data definition language (DDL) trigger was created. ]
    DateLastModified (System.DateTime) [Gets the date and time when the database data definition language (DDL) trigger was last modified. ]
    ExecutionContext (Microsoft.SqlServer.Management.Smo.DatabaseDdlTriggerExecutionContext) [Gets the execution conext of the DDL trigger. ]
    ExecutionContextUser (System.String) [Gets the execution conext user for the DDL trigger. ]
    ID (System.Int32) [Gets the ID value that uniquely identifies the database data definition language (DDL) trigger. ]
    ImplementationType (Microsoft.SqlServer.Management.Smo.ImplementationType) [Gets or sets the implementation type for the database data definition language (DDL) trigger. ]
    IsEnabled (System.Boolean) [Gets the Boolean property value that specifies whether the database data definition language (DDL) trigger is enabled. ]
    IsEncrypted (System.Boolean) [Gets or sets a Boolean property value that specifies whether the Transact-SQL batch or managed code is encrypted. ]
    IsSystemObject (System.Boolean) [Gets the Boolean property value that specifies whether the database data definition language (DDL) trigger is a system object. ]
    MethodName (System.String) [Gets or sets the name of the method that is owned by the class in the assembly, which is executed when the trigger is raised. ]
    NotForReplication (System.Boolean) [Gets or sets a Boolean property value that specifies whether the database data definition language (DDL) trigger is available for replication. ]
    QuotedIdentifierStatus (System.Boolean) [Gets or sets a Boolean property value that specifies whether identifiers delimited by double quotation marks are Transact-SQL reserved keywords or contain characters not usually allowed by the Transact-SQL syntax rules. ]
    Text (System.String) [Gets the Transact-SQL statement that defines the database data definition language (DDL) trigger. ]
    Name (System.String) [Gets or sets the name of the object.(inherited from NamedSmoObject) ]

Database Maintenance (IDatabaseMaintenanceFacet)
Description:Exposes properties of the Database object that encapsulates the maintenance aspects of a database.
Evaluated by:CheckOnSchedule
TargetTypes are:Database

Properties are:
    RecoveryModel (Microsoft.SqlServer.Management.Smo.RecoveryModel) [The recovery model for the database.]
    ReadOnly (System.Boolean) [Specifies whether the database is read-only.]
    PageVerify (Microsoft.SqlServer.Management.Smo.PageVerify) [Specifies the type of page integrity check that Microsoft SQL Server performs when reading database pages.]
    Status (Microsoft.SqlServer.Management.Smo.DatabaseStatus) [The database status.]
    LastBackupDate (System.DateTime) [The date and time when the database was last backed up.]
    LastLogBackupDate (System.DateTime) [The date and time when the transaction log was last backed up.]
    DataAndBackupOnSeparateLogicalVolumes (System.Boolean) [Returns true if the database has its data and backup files on the separate logical volumes.]

Database Options (IDatabaseOptions)
Description:Exposes option properties of the Database object.
Evaluated by:CheckOnChanges, CheckOnSchedule
TargetTypes are:Database

Properties are:
    AnsiNullDefault (System.Boolean) [Specifies whether the ANSI_NULL_DEFAULT database option is active.]
    AnsiNullsEnabled (System.Boolean) [Specifies whether the ANSI_NULLS_ENABLED database option is active.]
    AnsiPaddingEnabled (System.Boolean) [Specifies whether the ANSI_PADDING_ENABLED database option is active.]
    AnsiWarningsEnabled (System.Boolean) [Specifies whether the ANSI_WARNING_ENABLED database option is active.]
    ArithmeticAbortEnabled (System.Boolean) [Specifies whether the ARITHMETICABORT database option is active.]
    AutoClose (System.Boolean) [Specifies whether the AUTOCLOSE database option is active.]
    AutoCreateStatisticsEnabled (System.Boolean) [Specifies whether statistics are automatically created for the database.]
    AutoShrink (System.Boolean) [Specifies whether the AUTOSHRINK database option is active.]
    AutoUpdateStatisticsAsync (System.Boolean) [Specifies whether the AUTOUPDATESTATISTICSASYNC database option is active.]
    AutoUpdateStatisticsEnabled (System.Boolean) [Specifies whether statistics are automatically updated for the database.]
    BrokerEnabled (System.Boolean) [Specifies whether the Service Broker service is enabled.]
    ChangeTrackingAutoCleanUp (System.Boolean) [Gets the Boolean property value that specifies whether change tracking data is automatically cleaned up after the configured retention period.]
    ChangeTrackingEnabled (System.Boolean) [Gets the Boolean property value that specifies whether change tracking is enabled.]
    ChangeTrackingRetentionPeriod (System.Int32) [Gets the retention period specifying how long the change tracking data is kept in the database if autocleanup is being used.]
    ChangeTrackingRetentionPeriodUnits (Microsoft.SqlServer.Management.Smo.RetentionPeriodUnits) [Gets the unit of time for the change tracking retention period.]
    CloseCursorsOnCommitEnabled (System.Boolean) [Specifies whether the CURSOR_CLOSE_ON_COMMIT database option is active.]
    Collation (System.String) [The default collation used by the database.]
    CompatibilityLevel (Microsoft.SqlServer.Management.Smo.CompatibilityLevel) [The compatibility level for the database.]
    ConcatenateNullYieldsNull (System.Boolean) [Specifies whether the CONCAT_NULL_YIELDS_NULL database option is active.]
    CreateDate (System.DateTime) [The date that the database was created.]
    DatabaseOwnershipChaining (System.Boolean) [Specifies whether the database ownership chaining is active.]
    DatabaseSnapshotBaseName (System.String) [The name of the snapshot base for the database.]
    DateCorrelationOptimization (System.Boolean) [Specifies whether the date correlation optimization is active.]
    DefaultFileGroup (System.String) [The default file group used by the database.]
    DefaultFileStreamFileGroup (System.String) [Gets the filegroup name for the default FILESTREAM filegroup.]
    EncryptionEnabled (System.Boolean) [Gets the Boolean property value that specifies whether the database is enabled for transparent data encryption.]
    HonorBrokerPriority (System.Boolean) [Specifies whether the priority is taken into consideration for service broker.]
    ID (System.Int32) [The database ID value that uniquely identifies the database.]
    IsParameterizationForced (System.Boolean) [Specifies whether parameterization is forced on the database.]
    IsReadCommittedSnapshotOn (System.Boolean) [Specifies whether the database is enabled for read-committed isolation using row versioning.]
    IsSystemObject (System.Boolean) [Specifies whether the database is a system object or a user-defined database.]
    IsUpdateable (System.Boolean) [Specifies whether the database can be updated.]
    LocalCursorsDefault (System.Boolean) [Specifies whether the local server cursors are used by default.]
    Name (System.String) [Gets or sets the name of the object.(inherited from NamedSmoObject) ]
    Owner (System.String) [The database principal that is the owner of the database.]
    NumericRoundAbortEnabled (System.Boolean) [Specifies whether the NUMERIC_ROUNDABORT database option is active.]
    MirroringTimeout (System.Int32) [The maximum time, in seconds, that the principal server instance waits for a PING message from another instance in the mirroring session before assuming the other instance is disconnected.]
    PageVerify (Microsoft.SqlServer.Management.Smo.PageVerify) [Specifies the type of page integrity check that Microsoft SQL Server performs when reading database pages.]
    PrimaryFilePath (System.String) [The path and name of the operating system directory that contains the primary file for the database.]
    QuotedIdentifiersEnabled (System.Boolean) [Specifies whether identifiers delimited by double quotation marks (" ") are Transact-SQL reserved keywords or contain characters not usually allowed by the Transact-SQL syntax rules.]
    ReadOnly (System.Boolean) [Specifies whether the database is read-only.]
    RecoveryModel (Microsoft.SqlServer.Management.Smo.RecoveryModel) [The recovery model for the database.]
    RecursiveTriggersEnabled (System.Boolean) [Specifies whether recursive triggers are enabled on the database.]
    Trustworthy (System.Boolean) [Specifies whether the trustworthy property is set.]
    UserAccess (Microsoft.SqlServer.Management.Smo.DatabaseUserAccess) [The database user access.]

Database Performance (IDatabasePerformanceFacet)
Description:Exposes properties of the Database object that encapsulates the performance aspects of a database.
Evaluated by:CheckOnSchedule
TargetTypes are:Database

Properties are:
    AutoClose (System.Boolean) [Specifies whether the AUTOCLOSE database option is active.]
    AutoShrink (System.Boolean) [Specifies whether the AUTOSHRINK database option is active.]
    Size (System.Double) [The size of the database in megabytes.]
    DataAndLogFilesOnSeparateLogicalVolumes (System.Boolean) [Returns true if the database has its data and log files on separate logical volumes.]
    CollationMatchesModelOrMaster (System.Boolean) [Returns true if the collation of the database matches master or model.]
    IsSystemObject (System.Boolean) [Specifies whether the database is a system object or a user-defined database.]
    Status (Microsoft.SqlServer.Management.Smo.DatabaseStatus) [The database status.]

Database Role (DatabaseRole)
Description:Exposes properties of the DatabaseRole object.
Evaluated by:Enforce, CheckOnChanges, CheckOnSchedule
TargetTypes are:DatabaseRole

Properties are:
    CreateDate (System.DateTime) [Gets the date and time when the database role was created. ]
    DateLastModified (System.DateTime) [Gets the date and time when the database role was last modified. ]
    ID (System.Int32) [Gets the ID value that uniquely identifies the database role. ]
    IsFixedRole (System.Boolean) [Gets the Boolean property value that specifies whether the database role is a fixed role or a user-defined role. ]
    Owner (System.String) [Gets or sets the owner of the database role. ]
    Name (System.String) [Gets or sets the name of the object.(inherited from NamedSmoObject) ]

Database Security (IDatabaseSecurityFacet)
Description:Exposes properties of the Database object that encapsulate Security aspects of a database.
Evaluated by:CheckOnSchedule
TargetTypes are:Database

Properties are:
    Trustworthy (System.Boolean) [Specifies whether the trustworthy property is set.]
    IsOwnerSysadmin (System.Boolean) [Indicates whether the database owner is also a sysadmin.]

Default (Default)
Description:Exposes properties of the Default object.
Evaluated by:CheckOnSchedule
TargetTypes are:Default

Properties are:
    CreateDate (System.DateTime) [Gets the create date property of default.]
    ID (System.Int32) [Gets the ID value that uniquely identifies the Default.]
    Schema (System.String) [Gets or sets the schema.(inherited from ScriptSchemaObjectBase)              ]
    Name (System.String) [Gets or sets the name of the object.(inherited from NamedSmoObject) ]

Endpoint (Endpoint)
Description:Exposes properties to monitor and configure the state of an endpoint.
Evaluated by:Enforce, CheckOnChanges, CheckOnSchedule
TargetTypes are:Endpoint

Properties are:
    EndpointState (Microsoft.SqlServer.Management.Smo.EndpointState) [Gets the state of the endpoint.]
    EndpointType (Microsoft.SqlServer.Management.Smo.EndpointType) [Gets or sets the type of the endpoint. ]
    ID (System.Int32) [Gets the ID value that uniquely identifies the endpoint. ]
    IsAdminEndpoint (System.Boolean) [Gets the Boolean property value that specifies whether the endpoint is for administration. ]
    IsSystemObject (System.Boolean) [Gets the Boolean property that specifies whether the endpoint is a system object. ]
    Owner (System.String) [Gets or sets the owner of the endpoint. ]
    ProtocolType (Microsoft.SqlServer.Management.Smo.ProtocolType) [Gets or sets the protocol type used by the endpoint. ]
    Name (System.String) [Gets or sets the name of the object.(inherited from NamedSmoObject) ]

Filegroup (FileGroup)
Description:Exposes properties of the Filegroup object.
Evaluated by:CheckOnSchedule
TargetTypes are:FileGroup

Properties are:
    ID (System.Int32) [Gets the ID value that uniquely identifies the file group. ]
    IsDefault (System.Boolean) [Gets or sets the Boolean value that specifies whether the file group is the default file group for the database. ]
    ReadOnly (System.Boolean) [Gets the Boolean value that specifies whether the file group is read-only. ]
    Size (System.Double) [Gets or sets the size of the file group in kilobytes. ]
    IsFileStream (System.Boolean) [Gets the Boolean property value that specifies whether filestream is enabled.]
    Name (System.String) [Gets or sets the name of the object.(inherited from NamedSmoObject) ]

Full Text Catalog (FullTextCatalog)
Description:Exposes properties of the FullTextCatalog object.
Evaluated by:CheckOnSchedule
TargetTypes are:FullTextCatalog

Properties are:
    ErrorLogSize (System.Int32) [Gets the error log size property of Full Text Catalog.]
    FullTextIndexSize (System.Int32) [Gets the full text index size property of Full Text Catalog.]
    HasFullTextIndexedTables (System.Boolean) [Gets the 'has full text indexed table' property of Full Text Catalog.]
    ID (System.Int32) [Gets the ID value that uniquely identifies the Full Text Catalog.]
    ItemCount (System.Int32) [Gets the item count property of Full Text Catalog.]
    PopulationCompletionDate (System.DateTime) [Gets the population completion date property of Full Text Catalog.]
    PopulationStatus (Microsoft.SqlServer.Management.Smo.CatalogPopulationStatus) [Gets the population status property of Full Text Catalog.]
    RootPath (System.String) [Gets the root path property of Full Text Catalog.]
    UniqueKeyCount (System.Int32) [Gets the unique key count property of Full Text Catalog.]
    FileGroup (System.String) [Gets or sets the filegroup property of Full Text Catalog.]
    IsAccentSensitive (System.Boolean) [Gets or sets the 'is accent sensitive' property of Full Text Catalog.]
    IsDefault (System.Boolean) [Gets the 'is default' property of Full Text Catalog.]
    Owner (System.String) [Gets or sets the owner property of Full Text Catalog.]
    Name (System.String) [Gets or sets the name of the object.(inherited from NamedSmoObject) ]

Full Text Index (FullTextIndex)
Description:Exposes properties of the Full Text Index object
Evaluated by:CheckOnSchedule
TargetTypes are:FullTextIndex

Properties are:
    CatalogName (System.String) [Exposes properties of the Catalog Name object]
    ChangeTracking (Microsoft.SqlServer.Management.Smo.ChangeTracking) [Gets or sets the change tracking property of Full Text Index.]
    IsEnabled (System.Boolean) [Gets the 'is enabled' property of Full Text Index.]
    PopulationStatus (Microsoft.SqlServer.Management.Smo.IndexPopulationStatus) [Gets the population property of Full Text Index.]
    UniqueIndexName (System.String) [Gets the unique index name property of Full Text Index.]
    DocumentsProcessed (System.Int32) [Gets the document processed property of Full Text Index.]
    ItemCount (System.Int32) [Gets the item count property of Full Text Index.]
    NumberOfFailures (System.Int32) [Gets the number of failures property of Full Text Index.]
    PendingChanges (System.Int32) [Gets the pending changes property of Full Text Index.]
    FilegroupName (System.String) [Gets the filegroup name property of Full Text Index.]
    StopListName (System.String) [Gets the stop list name property of Full Text Index.]
    StopListOption (Microsoft.SqlServer.Management.Smo.StopListOption) [Gets the stop list option property of Full Text Index.]

Full Text Stop List (FullTextStopList)
Description:Exposes properties of the Full Text Stop List object
Evaluated by:CheckOnSchedule
TargetTypes are:FullTextStopList

Properties are:
    ID (System.Int32) [Gets the ID value that uniquely identifies the Full Text Stop List.]
    Owner (System.String) [Gets the owner property of Full Text Stop List.]
    Name (System.String) [Gets or sets the name of the object.(inherited from NamedSmoObject) ]

Index (Index)
Description:Exposes properties of the Index object.
Evaluated by:CheckOnSchedule
TargetTypes are:Index

Properties are:
    DisallowPageLocks (System.Boolean) [Gets or sets the Boolean property value that specifies whether the index allows page locks. ]
    DisallowRowLocks (System.Boolean) [Gets or sets the Boolean property value that specifies whether the index allows row locks. ]
    FileGroup (System.String) [Gets or sets the filegroup where the index pages are stored. ]
    FillFactor (System.Byte) [Gets or sets the percentage of an index page to fill when the index is created or re-created. ]
    ID (System.Int32) [Gets the index ID value that uniquely identifies the index within the database. ]
    IgnoreDuplicateKeys (System.Boolean) [Gets or sets the Boolean property value that specifies whether the index ignores duplicate keys. ]
    IndexKeyType (Microsoft.SqlServer.Management.Smo.IndexKeyType) [Gets or sets the index key type. ]
    IsClustered (System.Boolean) [Gets or sets the Boolean property value that specifies whether the index is clustered. ]
    IsFullTextKey (System.Boolean) [Gets or sets the Boolean value that specifies whether the index is enabled for row identification in Microsoft Search. ]
    IsSystemNamed (System.Boolean) [Gets the Boolean property value that specifies whether the index was named automatically by the system. ]
    IsSystemObject (System.Boolean) [Gets the Boolean property value that specifies whether the index is a system object. ]
    IsUnique (System.Boolean) [Gets or sets the Boolean property value that specifies whether the index is unique or not. ]
    NoAutomaticRecomputation (System.Boolean) [Gets or sets the Boolean property value that specifies whether statistics are regenerated when an index is created. ]
    PadIndex (System.Boolean) [Gets or sets the Boolean property value that specifies whether space is left open on each page of the intermediate levels of the index. ]
    SpaceUsed (System.Double) [Gets or sets the disk space used to store the index data in kilobytes. ]
    IsDisabled (System.Boolean) [Gets or sets the Boolean property value that specifies whether the index is disabled. ]
    IsPartitioned (System.Boolean) [Gets the Boolean property value that specifies whether the index is stored in a partitioned scheme. ]
    IsXmlIndex (System.Boolean) [Gets or sets the Boolean property value that specifies whether the index is an XML index. ]
    ParentXmlIndex (System.String) [Gets or sets the parent of an XML index. ]
    PartitionScheme (System.String) [Gets or sets the partition scheme associated with the index. ]
    SecondaryXmlIndexType (Microsoft.SqlServer.Management.Smo.SecondaryXmlIndexType) [Gets or sets the secondary XML index type. ]
    BoundingBoxXMax (System.Double) [Gets or sets the X-max bounding box coordinate of a spatial index (for the GEOMETRY_GRID tessellation scheme only).]
    BoundingBoxXMin (System.Double) [Gets or sets the X-min bounding box coordinate of a spatial index (for the GEOMETRY_GRID tessellation scheme only).]
    BoundingBoxYMax (System.Double) [Gets or sets the Y-max bounding box coordinate of a spatial index (for the GEOMETRY_GRID tessellation scheme only).]
    BoundingBoxYMin (System.Double) [Gets or sets the Y-min bounding box coordinate of a spatial index (for the GEOMETRY_GRID tessellation scheme only).]
    CellsPerObject (System.Int32) [Gets or sets the cells-per-object limit of a spatial index.]
    FileStreamFileGroup (System.String) [Gets or sets the filestream filegroup where the index pages are stored. ]
    FileStreamPartitionScheme (System.String) [Gets or sets the filestream partition scheme associated with the index. ]
    FilterDefinition (System.String) [Gets or sets the filter definition of an index. ]
    HasCompressedPartitions (System.Boolean) [Gets the Boolean value that indicates whether the table or index has compressed partitions. This property also returns True for an unpartitioned compressed table.]
    HasFilter (System.Boolean) [Gets the Boolean value that indicates whether the index has a filter.]
    IsSpatialIndex (System.Boolean) [Gets the Boolean property value that specifies whether the index is a spatial index.]
    Level1Grid (Microsoft.SqlServer.Management.Smo.SpatialGeoLevelSize) [Gets or sets the density of the level-1 grid of a spatial index.]
    Level2Grid (Microsoft.SqlServer.Management.Smo.SpatialGeoLevelSize) [Gets or sets the density of the level-2 grid of a spatial index.]
    Level3Grid (Microsoft.SqlServer.Management.Smo.SpatialGeoLevelSize) [Gets or sets the density of the level-3 grid of a spatial index.]
    Level4Grid (Microsoft.SqlServer.Management.Smo.SpatialGeoLevelSize) [Gets or sets the density of the level-4 grid of a spatial index.]
    SpatialIndexType (Microsoft.SqlServer.Management.Smo.SpatialIndexType) [Gets or sets the spatial index type. ]
    Name (System.String) [Gets or sets the name of the object.(inherited from NamedSmoObject) ]

Linked Server (LinkedServer)
Description:Exposes properties of the LinkedServer object.
Evaluated by:CheckOnSchedule
TargetTypes are:LinkedServer

Properties are:
    Catalog (System.String) [Gets or sets the database to be used when the linked server is made through a connection to an OLE DB provider. ]
    CollationCompatible (System.Boolean) [Gets or sets the Boolean property value that specifies whether the default collation of the linked server is compatible with the default collation on the local instance of Microsoft SQL Server. ]
    DataAccess (System.Boolean) [Gets or sets the Boolean property value that specifies whether data can be accessed on the linked server. ]
    DataSource (System.String) [Gets or sets the data source to be used when the linked server is made through a connection to an OLE DB provider.  ]
    DistPublisher (System.Boolean) [Gets or sets a Boolean property value that specifies whether the linked server is participating in replication as a distribution Publisher. ]
    Distributor (System.Boolean) [Gets or sets a Boolean property value that specifies whether the linked server is participating in replication as a distribution Publisher. ]
    ID (System.Int32) [Gets the ID value that uniquely identifies the linked server. ]
    Location (System.String) [Gets or sets the description of the location of the linked server. ]
    ProductName (System.String) [Gets or sets the name of the product to which Microsoft SQL Server can connect through the OLE DB Provider. ]
    ProviderName (System.String) [Gets or sets the name of the OLE DB provider used to connect to the linked server. ]
    Publisher (System.Boolean) [Gets or sets a Boolean property value that specifies whether the linked server is a replication Publisher or not. ]
    Rpc (System.Boolean) [Gets or sets the Boolean property value that specifies whether the linked server supports remote procedure calls (RPCs). ]
    RpcOut (System.Boolean) [The Boolean property value that specifies whether the linked server supports remote procedure calls (RPCs) with output parameters. ]
    Subscriber (System.Boolean) [Gets or sets the Boolean property value that specifies whether the linked server is a replication Subscriber. ]
    CollationName (System.String) [Gets or sets the name of the collation to use when sorting data from the linked server. ]
    ConnectTimeout (System.Int32) [Gets or sets the number of seconds to wait for a connection to be established with the linked server before timing out. ]
    LazySchemaValidation (System.Boolean) [Gets or sets the Boolean property value that specifies whether the schema used by the linked server data is validated when the local instance of Microsoft SQL Server is idle or not. ]
    QueryTimeout (System.Int32) [Gets or sets the time in seconds to wait for a query to execute before timing out. ]
    UseRemoteCollation (System.Boolean) [Gets or sets the Boolean property value that specifies whether to use the collation associated with the data from the linked server.]
    DateLastModified (System.DateTime) [Gets the date and time when the linked server was last modified.  ]
    IsPromotionofDistributedTransactionsForRPCEnabled (System.Boolean) [Gets the Boolean property value that specifies whether the promotion of distributed transactions for RPC property is enabled for the linked server.]
    Name (System.String) [Gets or sets the name of the object.(inherited from NamedSmoObject) ]

Log File (LogFile)
Description:Exposes properties of the LogFile object.
Evaluated by:CheckOnSchedule
TargetTypes are:LogFile

Properties are:
    FileName (System.String) [Gets or sets the file name of the log file. ]
    Growth (System.Double) [Gets or sets the growth increment for the log file in KB or percent. ]
    GrowthType (Microsoft.SqlServer.Management.Smo.FileGrowthType) [Gets or sets the growth type for the data file in KB or percent. ]
    ID (System.Int32) [Gets the ID value that uniquely identifies the log file. ]
    MaxSize (System.Double) [Gets or set the maximum size to which the data file can grow in KB. ]
    Size (System.Double) [Gets or sets the current size of the log file. ]
    UsedSpace (System.Double) [Gets the amount of used space in the log file in KB. ]
    IsOffline (System.Boolean) [Gets the Boolean value that specifies whether the log file is offline or not. ]
    IsReadOnly (System.Boolean) [Gets the Boolean value that specifies whether the log file is read-only or can be updated. ]
    IsReadOnlyMedia (System.Boolean) [Gets the Boolean value that specifies whether the log file is stored on read-only media. ]
    IsSparse (System.Boolean) [Gets the Boolean value that specifies whether the data file is sparse. ]
    Name (System.String) [Gets or sets the name of the object.(inherited from NamedSmoObject) ]

Login (Login)
Description:Exposes properties of the Login object.
Evaluated by:CheckOnSchedule
TargetTypes are:Login

Properties are:
    CreateDate (System.DateTime) [Gets the date and time when the login was created. ]
    DateLastModified (System.DateTime) [Gets the date and time when the logon account was last modified. ]
    DefaultDatabase (System.String) [Gets or sets the default database that the logon account is assigned to after logging on to the instance of Microsoft SQL Server. ]
    DenyWindowsLogin (System.Boolean) [Gets or sets the Boolean property value that specifies whether the logon account has been granted or denied the ability to log on to the instance of Microsoft SQL Server. ]
    HasAccess (System.Boolean) [Gets or sets the Boolean property value that specifies whether the Microsoft SQL Server logon account has access to the instance of SQL Server. ]
    IsSystemObject (System.Boolean) [Gets the Boolean property value that specifies whether the login is a system object. ]
    Language (System.String) [Gets or sets the language required by the referenced logon account for date formats and system messages. ]
    LanguageAlias (System.String) [Gets the alias name used for the language that is required by the Microsoft SQL Server logon account. ]
    LoginType (Microsoft.SqlServer.Management.Smo.LoginType) [Gets or sets the type of Microsoft SQL Server logon account. ]
    Sid (System.Byte[]) [Gets or sets the security identifier (SID) for the logon account. ]
    WindowsLoginAccessType (Microsoft.SqlServer.Management.Smo.WindowsLoginAccessType) [Gets the type of Microsoft Windows logon access.]
    AsymmetricKey (System.String) [Gets or sets the asymmetric key for the login. ]
    Certificate (System.String) [Gets the certificate associated with the login. ]
    Credential (System.String) [Gets the credential associated with the login. ]
    ID (System.Int32) [Gets the ID value that uniquely identifies the logon account. ]
    IsDisabled (System.Boolean) [Gets or sets the Boolean property value that specifies whether the login is disabled. ]
    IsLocked (System.Boolean) [Gets the Boolean property value that specifies whether the logon account has been locked out of the instance of Microsoft SQL Server. ]
    IsPasswordExpired (System.Boolean) [Gets the Boolean property value that specifies whether the password for the Microsoft SQL Server logon account has expired. ]
    MustChangePassword (System.Boolean) [Gets the Boolean property value that specifies whether the logon account password must be changed when the user next logs in to the instance of Microsoft SQL Server.  ]
    PasswordExpirationEnabled (System.Boolean) [Gets the Boolean property value that specifies whether the password for the logon account will automatically expire. ]
    PasswordPolicyEnforced (System.Boolean) [Gets the Boolean property value that specifies whether password policy is enforced for this logon account. ]
    Name (System.String) [Gets or sets the name of the object.(inherited from NamedSmoObject) ]

Login Options (ILoginOptions)
Description:Exposes option properties of the Login object.
Evaluated by:Enforce, CheckOnChanges, CheckOnSchedule
TargetTypes are:Login

Properties are:
    AsymmetricKey (System.String) [Gets or sets the asymmetric key for the login. ]
    Certificate (System.String) [Gets the certificate associated with the login. ]
    CreateDate (System.DateTime) [Gets the date and time when the login was created. ]
    Credential (System.String) [Gets the credential associated with the login. ]
    DefaultDatabase (System.String) [Gets or sets the default database that the logon account is assigned to after logging on to the instance of Microsoft SQL Server. ]
    ID (System.Int32) [Gets the ID value that uniquely identifies the logon account. ]
    IsDisabled (System.Boolean) [Gets or sets the Boolean property value that specifies whether the login is disabled. ]
    IsLocked (System.Boolean) [Gets the Boolean property value that specifies whether the logon account has been locked out of the instance of Microsoft SQL Server. ]
    IsSystemObject (System.Boolean) [Gets the Boolean property value that specifies whether the login is a system object. ]
    Language (System.String) [Gets or sets the language required by the referenced logon account for date formats and system messages. ]
    LanguageAlias (System.String) [Gets the alias name used for the language that is required by the Microsoft SQL Server logon account. ]
    MustChangePassword (System.Boolean) [Gets the Boolean property value that specifies whether the logon account password must be changed when the user next logs in to the instance of Microsoft SQL Server.  ]
    Name (System.String) [Gets or sets the name of the object.(inherited from NamedSmoObject) ]
    PasswordExpirationEnabled (System.Boolean) [Gets the Boolean property value that specifies whether the password for the logon account will automatically expire. ]
    PasswordPolicyEnforced (System.Boolean) [Gets the Boolean property value that specifies whether password policy is enforced for this logon account. ]

Message Type (MessageType)
Description:Name of the Service Broker message type. This defines the formats of messages that are allowed in conversations.
Evaluated by:CheckOnSchedule
TargetTypes are:MessageType

Properties are:
    ID (System.Int32) [Gets the ID value that uniquely identifies the message type.]
    IsSystemObject (System.Boolean) [Gets the Boolean property that specifies whether the message type is a system object. ]
    MessageTypeValidation (Microsoft.SqlServer.Management.Smo.Broker.MessageTypeValidation) [Specifies whether Service Broker validates that messages of this type are empty, well-formed XML, or comply with an XML schema.]
    Owner (System.String) [The database principal that owns the message type.]
    ValidationXmlSchemaCollection (System.String) [The collection of XML schemas used to validate messages of this type.]
    ValidationXmlSchemaCollectionSchema (System.String) [Name of the database schema that contains the XML schema collection.]
    Name (System.String) [Gets or sets the name of the object.(inherited from NamedSmoObject) ]

Multipart Name (IMultipartNameFacet)
Description:Describes name information of an object, including name and schema.
Evaluated by:Enforce, CheckOnChanges, CheckOnSchedule
TargetTypes are:StoredProcedure,Synonym,Table,UserDefinedFunction,UserDefinedType,View,XmlSchemaCollection

Properties are:
    Name (System.String) [Object name.]
    Schema (System.String) [Object schema.]

Name (INameFacet)
Description:Object name.
Evaluated by:CheckOnSchedule
TargetTypes are:ApplicationRole,AsymmetricKey,Certificate,DatabaseRole,Default,Index,Rule,Schema,SqlAssembly,StoredProcedure,SymmetricKey,Synonym,Table,Trigger,User,UserDefinedFunction,UserDefinedType,View,XmlSchemaCollection

Properties are:
    Name (System.String) [Object name.]

Partition Function (PartitionFunction)
Description:Exposes properties of the PartitionFunction object.
Evaluated by:CheckOnSchedule
TargetTypes are:PartitionFunction

Properties are:
    CreateDate (System.DateTime) [Gets the create date property of Partition Function.]
    ID (System.Int32) [Gets the ID value that uniquely identifies the Partition Function]
    NumberOfPartitions (System.Int32) [Gets the number of partitions property of Partition Function.]
    RangeType (Microsoft.SqlServer.Management.Smo.RangeType) [Gets the range type property of Partition Function.]
    Name (System.String) [Gets or sets the name of the object.(inherited from NamedSmoObject) ]

Partition Scheme (PartitionScheme)
Description:Exposes properties of the PartitionScheme object.
Evaluated by:CheckOnSchedule
TargetTypes are:PartitionScheme

Properties are:
    ID (System.Int32) [Gets the ID value that uniquely identifies the Partition Scheme.]
    NextUsedFileGroup (System.String) [Gets or sets the next used filegroup property of Partition Scheme.]
    PartitionFunction (System.String) [Gets the partition function property of Partition Scheme.]
    Name (System.String) [Gets or sets the name of the object.(inherited from NamedSmoObject) ]

Plan Guide (PlanGuide)
Description:Exposes properties of the Plan Guide object.
Evaluated by:CheckOnSchedule
TargetTypes are:PlanGuide

Properties are:
    Hints (System.String) [Gets the hints associated with the Plan Guide. ]
    ID (System.Int32) [Gets the ID value that uniquely identifies the Plan Guide.]
    IsDisabled (System.Boolean) [Gets or sets the Boolean property that specifies whether the Plan Guide is enabled or disabled.]
    Parameters (System.String) [Gets the parameters that are embedded in statement of the Plan Guide.]
    ScopeBatch (System.String) [Gets the Scope Batch property of the Plan Guide.]
    ScopeObjectName (System.String) [Gets the Scope Object Name property of the Plan Guide.]
    ScopeSchemaName (System.String) [Gets the scope schema name property of the Plan Guide.]
    ScopeType (Microsoft.SqlServer.Management.Smo.PlanGuideType) [Gets the scope type property of the Plan Guide.]
    Statement (System.String) [Gets the statement property of the Plan Guide.]
    Name (System.String) [Gets or sets the name of the object.(inherited from NamedSmoObject) ]

Remote Service Binding (RemoteServiceBinding)
Description:Name of the remote service binding. This defines the security credentials that are used to communicate with a remote service.
Evaluated by:CheckOnSchedule
TargetTypes are:RemoteServiceBinding

Properties are:
    CertificateUser (System.String) [User that holds the certificate associated with remote service binding]
    ID (System.Int32) [Gets the ID value that uniquely identifies the remote service binding.]
    IsAnonymous (System.Boolean) [Specifies whether connections to the remote service are anonymous and do not send local conversation security credentials.]
    Owner (System.String) [The database principal that owns the remote service binding.]
    RemoteService (System.String) [The remote service for which the remote service binding provides connection security credentials.]
    Name (System.String) [Gets or sets the name of the object.(inherited from NamedSmoObject) ]

Resource Governor  (ResourceGovernor)
Description:Exposes properties of the ResourceGovernor object.
Evaluated by:CheckOnSchedule
TargetTypes are:ResourceGovernor

Properties are:
    ClassifierFunction (System.String) [Gets or sets the string that defines that classifier function. ]
    Enabled (System.Boolean) [Gets or sets the Boolean property that specifies whether the Resource Governor is enabled.]
    ReconfigurePending (System.Boolean) [Gets the Boolean property that specifies whether the Resource Governor configuration is pending.]

Resource Pool  (ResourcePool)
Description:Exposes properties of the ResourcePool object.
Evaluated by:Enforce, CheckOnChanges, CheckOnSchedule
TargetTypes are:ResourcePool

Properties are:
    ID (System.Int32) [Gets the ID value that uniquely identifies the resource pool. ]
    IsSystemObject (System.Boolean) [Gets the Boolean property that specifies whether the resource pool is a system object. ]
    MaximumCpuPercentage (System.Int32) [Gets or sets the maximum cpu percentage for a resource pool. ]
    MaximumMemoryPercentage (System.Int32) [Gets or sets the maximum memory percentage for a resource pool.]
    MinimumCpuPercentage (System.Int32) [Gets or sets the minimum memory percentage for a resource pool.]
    MinimumMemoryPercentage (System.Int32) [Gets or sets the minimum cpu percentage for a resource pool. ]
    Name (System.String) [Gets or sets the name of the object.(inherited from NamedSmoObject) ]

Rule (Rule)
Description:Exposes properties of the Rule object.
Evaluated by:CheckOnSchedule
TargetTypes are:Rule

Properties are:
    CreateDate (System.DateTime) [Gets the time and date when the rule was created. ]
    ID (System.Int32) [Gets the ID value that uniquely identifies the rule. ]
    DateLastModified (System.DateTime) [Gets the time and date when the rule was last modified. ]
    Schema (System.String) [Gets or sets the schema.(inherited from ScriptSchemaObjectBase)              ]
    Name (System.String) [Gets or sets the name of the object.(inherited from NamedSmoObject) ]

Schema (Schema)
Description:Exposes properties of the Schema object.
Evaluated by:Enforce, CheckOnChanges, CheckOnSchedule
TargetTypes are:Schema

Properties are:
    ID (System.Int32) [Gets the ID value that uniquely identifies the schema. ]
    Owner (System.String) [Gets the owner of the schema. ]
    Name (System.String) [Gets or sets the name of the object.(inherited from NamedSmoObject) ]

Server (Server)
Description:Exposes properties of the Server object.
Evaluated by:CheckOnSchedule
TargetTypes are:Server

Properties are:
    AuditLevel (Microsoft.SqlServer.Management.Smo.AuditLevel) [Gets or sets the audit level for the instance of Microsoft SQL Server. ]
    BackupDirectory (System.String) [Gets the default backup directory for the instance of Microsoft SQL Server. ]
    BuildNumber (System.Int32) [Gets the build number part of the server version information.]
    DefaultFile (System.String) [Gets or sets the default data file directory for the instance of Microsoft SQL Server. ]
    DefaultLog (System.String) [Gets or sets the default log file directory for the instance of Microsoft SQL Server. ]
    ErrorLogPath (System.String) [Gets the file directory where the error log is stored on the instance of Microsoft SQL Server.]
    InstallDataDirectory (System.String) [Gets the installation path of the server data directories.]
    IsCaseSensitive (System.Boolean) [Gets the Boolean value that specifies whether the instance of Microsoft SQL Server is case sensitive. ]
    IsFullTextInstalled (System.Boolean) [Gets the Boolean value that specifies whether the full-text component is installed with the current instance of SQL Server.]
    Language (System.String) [Gets the default language used by the instance of Microsoft SQL Server. ]
    MailProfile (System.String) [Gets or sets the mail profile for the instance of Microsoft SQL Server. ]
    MasterDBLogPath (System.String) [Gets the log file directory for the master database on the instance of Microsoft SQL Server. ]
    MasterDBPath (System.String) [Gets the database file directory for the master database on the instance of Microsoft SQL Server. ]
    MaxPrecision (System.Byte) [Gets the greatest decimal precision available for exact numeric data types (not floating point), including decimal and numeric. ]
    NumberOfLogFiles (System.Int32) [Gets or sets the number of log files used by databases on the instance of Microsoft SQL Server.  ]
    OSVersion (System.String) [Gets the operating system version of the computer running the instance of Microsoft SQL Server. ]
    PerfMonMode (Microsoft.SqlServer.Management.Smo.PerfMonMode) [Gets the polling behavior of Performance Monitor on the instance of SQL Server.]
    PhysicalMemory (System.Int32) [Gets the total RAM installed, in megabytes, for the computer running the instance of Microsoft SQL Server. ]
    Platform (System.String) [Gets the hardware platform for the computer running the instance of Microsoft SQL Server. ]
    Processors (System.Int32) [Gets the number of processors installed on the computer running the instance of Microsoft SQL Server. ]
    Product (System.String) [Gets the product title for the instance of Microsoft SQL Server. ]
    RootDirectory (System.String) [Gets the root directory for the instance of Microsoft SQL Server. ]
    ServiceName (System.String) [Get the service name for the server.]
    VersionMajor (System.Int32) [Gets the major version of the instance of Microsoft SQL Server.]
    VersionMinor (System.Int32) [Gets the minor version of the instance of Microsoft SQL Server.]
    Collation (System.String) [Gets the default collation for the instance of Microsoft SQL Server. ]
    Edition (System.String) [Gets the edition of the instance of Microsoft SQL Server. ]
    EngineEdition (Microsoft.SqlServer.Management.Smo.Edition) [Gets the Database Engine edition of the instance of SQL Server installed on the server.
1 =Personal or Desktop Engine
2 =Standard (This is returned for Standard and Workgroup.)
3 =Enterprise (This is returned for Enterprise, Enterprise Evaluation, and Developer.)
4 =Express (This is returned for Express, Express Edition with Advanced Services, and Windows Embedded SQL.) ]
    InstanceName (System.String) [Gets the name of the instance of SQL Server.  ]
    IsClustered (System.Boolean) [Gets the Boolean value that specifies whether the instance of Microsoft SQL Server is a clustered server. ]
    IsSingleUser (System.Boolean) [Gets the Boolean value that specifies whether the instance of Microsoft SQL Server is read-only. ]
    NetName (System.String) [Gets the NetBIOS name of the network on which the instance of Microsoft SQL Server is running. ]
    ProductLevel (System.String) [Gets the product level for the instance of Microsoft SQL Server. ]
    ServerType (Microsoft.SqlServer.Management.Smo.ServerType) [Gets the type of the instance of Microsoft SQL Server.]
    Status (Microsoft.SqlServer.Management.Smo.ServerStatus) [Gets the status of the instance of Microsoft SQL Server.]
    TapeLoadWaitTime (System.Int32) [Gets or sets the time to wait for a tape to load on a tape backup device.]
    VersionString (System.String) [Gets the date, version, and processor type of the instance of Microsoft SQL Server.]
    BrowserServiceAccount (System.String) [Gets the service account name for the SQL Server Browser service.]
    BrowserStartMode (Microsoft.SqlServer.Management.Smo.ServiceStartMode) [Gets the startup type of the SQL Server Browser service.]
    BuildClrVersionString (System.String) [Gets the version of the Microsoft .NET Framework common language runtime (CLR) that was used while building the instance of SQL Server.]
    CollationID (System.Int32) [Gets the ID of the SQL Server collation.]
    ComparisonStyle (System.Int32) [Gets the Windows comparison style of the collation.]
    ComputerNamePhysicalNetBIOS (System.String) [Gets the NetBIOS name of the local computer on which the instance of SQL Server is currently running. For a clustered instance of SQL Server on a failover cluster, this value changes as the instance of SQL Server fails over to other nodes in the failover cluster. On a stand-alone instance of SQL Server, this value remains constant and returns the same value as the MachineName property.]
    InstallSharedDirectory (System.String) [Root installation directory for shared components.]
    NamedPipesEnabled (System.Boolean) [Boolean value that specifies whether the Named Pipes protocol is enabled.]
    ResourceLastUpdateDateTime (System.DateTime) [Returns the date and time that the Resource database was last updated.]
    ResourceVersionString (System.String) [Returns the version Resource database.]
    ServiceAccount (System.String) [Gets the service account name for SQL Server service.]
    ServiceInstanceId (System.String) [Gets the instance ID that specifies the installation location for server components.]
    ServiceStartMode (Microsoft.SqlServer.Management.Smo.ServiceStartMode) [Get the SQL Server service startup type.]
    SqlCharSet (System.Int16) [Gets the SQL character set ID from the collation ID.]
    SqlCharSetName (System.String) [Gets the SQL character set name from the collation.]
    SqlSortOrder (System.Int16) [Gets the SQL sort order ID from the collation.]
    SqlSortOrderName (System.String) [Gets the SQL sort order name from the collation.]
    TcpEnabled (System.Boolean) [Boolean value that specifies whether the TCP/IP protocol is enabled.]
    FilestreamLevel (Microsoft.SqlServer.Management.Smo.FileStreamEffectiveLevel) [Gets the enabled level of FILESTREAM.]
    FilestreamShareName (System.String) [Gets the name of the file share for FILESTREAM.]
    SqlDomainGroup (System.String) [Gets the configuration of the SQL Server domain group.]

Server Audit (IServerAuditFacet)
Description:Exposes properties of the Server object that encapsulates audit aspects of an instance of the Database Engine.
Evaluated by:CheckOnSchedule
TargetTypes are:Server

Properties are:
    DefaultTraceEnabled (System.Boolean) [Enables the default trace option. The default trace option provides a persistent log of activity and changes that are primarily related to the configuration options.]
    C2AuditTracingEnabled (System.Boolean) [Audits all attempts to access statements and objects. Writes attempts to a file in the SQL Server Data folder.]
    LoginAuditLevel (Microsoft.SqlServer.Management.Smo.AuditLevel) [Sets auditing mode for tracking Logins that have logged with success/failure.]

Server Audit Specification (ServerAuditSpecification)
Description:Exposes the properties of the ServerAuditSpecification object.
Evaluated by:CheckOnSchedule
TargetTypes are:ServerAuditSpecification

Properties are:
    AuditName (System.String) [Specifies the audit name to which the server audit specification belongs.]
    CreateDate (System.DateTime) [Is the date and time when the server audit specification was created.]
    DateLastModified (System.DateTime) [Is the date and time when the server audit specification was last modified.]
    Enabled (System.Boolean) [Specifies the Boolean property that specifies whether the server audit specification is enabled.]
    Guid (System.Guid) [Is the GUID value of the audit to which the server audit specification belongs.]
    ID (System.Int32) [Is the ID value that uniquely identifies the server audit specification.]
    Name (System.String) [Gets or sets the name of the object.(inherited from NamedSmoObject) ]

Server Configuration (IServerConfigurationFacet)
Description:Exposes properties of the Server regarding the configuration settings of the server.
Evaluated by:CheckOnChanges, CheckOnSchedule
TargetTypes are:Server

Properties are:
    AdHocRemoteQueriesEnabled (System.Boolean) [Gets or sets the Boolean property value that specifies whether the ad hoc distributed queries configuration option is enabled. ]
    AffinityMask (System.Int32) [Gets the affinity mask configuration option. ]
    Affinity64Mask (System.Int32) [Gets the the affinity 64 mask configuration option. ]
    AffinityIOMask (System.Int32) [Gets the affinity IO mask configuration option. ]
    Affinity64IOMask (System.Int32) [Gets the affinity 64 IO mask configuration option. ]
    AgentXPsEnabled (System.Boolean) [Gets or sets the Boolean property value that specifies whether agent XPs configuration option is enabled.]
    AllowUpdates (System.Boolean) [Gets or sets the Boolean property value that specifies whether the allow updates configuration option is enabled. ]
    AweEnabled (System.Boolean) [Gets or sets the Boolean property value that specifies whether AWE enabled configuration is enabled. ]
    BlockedProcessThreshold (System.Int32) [Gets or sets the blocked process threshold configuration option. ]
    C2AuditTracingEnabled (System.Boolean) [Gets the Boolean property value that specifies whether the C2 audit mode configuration is enabled. ]
    ClrIntegrationEnabled (System.Boolean) [Gets or sets the Boolean property value that specifies whether the SQL CLR enabled configuration option is enabled. ]
    CommonCriteriaComplianceEnabled (System.Boolean) [Gets the Boolean property value that specifies whether the common criteria compliance configuration option is enabled. ]
    CostThresholdForParallelism (System.Int32) [Gets or sets cost threshold for parallelism configuration option. ]
    CrossDBOwnershipChainingEnabled (System.Boolean) [Gets or sets the Boolean property value that specifies whether the cross DB ownership chaining configuration option is enabled. ]
    CursorThreshold (System.Int32) [Gets or sets the cursor threshold configuration option. ]
    DatabaseMailEnabled (System.Boolean) [Gets the Boolean property value that specifies whether the database mail is enabled. ]
    DefaultTraceEnabled (System.Boolean) [Gets the Boolean property value that specifies whether the default trace is enabled. ]
    DefaultFullTextLanguage (System.Int32) [Gets or sets default full text language configuration option. ]
    DefaultLanguage (System.Int32) [Gets or sets the default language configuration option. ]
    DisallowResultsFromTriggers (System.Boolean) [Gets or sets the Boolean property value that specifies whether the disallow results from triggers configuration option is enabled. ]
    FillFactor (System.Int32) [Gets the fill factor configuration option. ]
    FullTextCrawlBandwidthMin (System.Int32) [Gets or sets the full text crawl bandwidth min configuration option. ]
    FullTextCrawlBandwidthMax (System.Int32) [Gets or sets the full text crawl bandwidth max configuration option. ]
    FullTextNotifyBandwidthMin (System.Int32) [Gets or sets the full text notify bandwidth min configuration option. ]
    FullTextNotifyBandwidthMax (System.Int32) [Gets or sets the full text notify bandwidth max configuration option. ]
    FullTextCrawlRangeMax (System.Int32) [Gets or sets the full text crawl range max configuration option. ]
    InDoubtTransactionResolution (Microsoft.SqlServer.Management.Smo.InDoubtTransactionResolutionType) [Gets or sets the in doubt transaction resolution configuration option. ]
    IndexCreateMemory (System.Int32) [Gets or sets the index create memory configuration option. ]
    LightweightPoolingEnabled (System.Boolean) [Gets the Boolean property value that specifies whether the lightweight pooling configuration option is enabled. ]
    DynamicLocks (System.Int32) [Gets the the locks configuration option. ]
    MaxDegreeOfParallelism (System.Int32) [Gets or sets the max degree of parallelism configuration option. ]
    MaxServerMemory (System.Int32) [Gets or sets the max server memory configuration option. ]
    MaxWorkerThreads (System.Int32) [Gets  the max worker threads configuration option. ]
    MediaRetention (System.Int32) [Gets the media retention configuration option. ]
    MinMemoryPerQuery (System.Int32) [Gets or sets the min memory per query configuration option. ]
    MinServerMemory (System.Int32) [Gets or sets the min server memory configuration option. ]
    NestedTriggersEnabled (System.Boolean) [Gets or sets the nested triggers configuration option. ]
    NetworkPacketSize (System.Int32) [Gets or sets the network packet size configuration option. ]
    OleAutomationEnabled (System.Boolean) [Gets or sets the Boolean property value that specifies whether the OLE automation procedures configuration option is enabled. ]
    OpenObjects (System.Int32) [Gets  the open objects configuration option. ]
    PrecomputeRank (System.Boolean) [Gets or sets the precompute rank configuration option. ]
    PriorityBoost (System.Boolean) [Gets the Boolean property value that specifies whether the priority boost configuration option is enabled. ]
    ProtocolHandlerTimeout (System.Int32) [Gets or sets the protocol handler timeoutconfiguration option. ]
    QueryGovernorCostLimit (System.Int32) [Gets or sets the query governor cost limit option. ]
    QueryWait (System.Int32) [Gets or sets the query wait configuration option. ]
    RecoveryInterval (System.Int32) [Gets or sets the recovery interval configuration option. ]
    RemoteAccessEnabled (System.Boolean) [Gets the Boolean property value that specifies whether the remote access configuration option is enabled. ]
    RemoteDacEnabled (System.Boolean) [Gets or sets the Boolean property value that specifies whether the remote DAC connections enabled configuration option is enabled. ]
    RemoteLoginTimeout (System.Int32) [Gets or sets the remote login timeout configuration option. ]
    RemoteProcTransEnabled (System.Boolean) [Gets or sets the Boolean property value that specifies whether the remote proc trans configuration option is enabled. ]
    RemoteQueryTimeout (System.Int32) [Gets or sets the remote query timeout configuration option. ]
    ReplicationMaxTextSize (System.Int32) [Gets or sets the replication max text size configuration option. ]
    ReplicationXPsEnabled (System.Boolean) [Gets or sets the Boolean property value that specifies whether the replication XPs enabled configuration option is enabled. ]
    ScanForStartupProcedures (System.Boolean) [Gets or sets the Boolean property value that specifies whether the scan for startup procs configuration option is enabled. ]
    ServerTriggerRecursionEnabled (System.Boolean) [Gets or sets the Boolean property value that specifies whether the server trigger recursion configuration option is enabled. ]
    SetWorkingSetSize (System.Boolean) [Gets the Boolean property value that specifies whether the set working set size configuration option. ]
    ShowAdvancedOptions (System.Boolean) [Gets or sets the Boolean property value that specifies whether the the show advanced options configuration option is enabled. ]
    SmoAndDmoXPsEnabled (System.Boolean) [Gets or sets the Boolean property value that specifies whether the the SMO and DMO XPs enabled configuration option is enabled. ]
    SqlMailEnabled (System.Boolean) [Gets or sets the Boolean property value that specifies whether the SQL mail XPs enabled configuration option is enabled. ]
    TransformNoiseWords (System.Boolean) [Gets or sets the Boolean property value that specifies whether the transform noise words configuration option is enabled. ]
    TwoDigitYearCutoff (System.Int32) [Gets or sets the two digit year cutoff configuration option. ]
    UserConnections (System.Int32) [Gets the user connections configuration option. ]
    UserInstanceTimeout (System.Int32) [Gets or sets the user instance timeout configuration option. ]
    UserInstancesEnabled (System.Boolean) [Gets or sets the user instances configuration option is enabled. ]
    UserOptions (System.Int32) [Gets or sets the user options configuration option. ]
    WebAssistantEnabled (System.Boolean) [Gets or sets the web XPs enabled configuration option. ]
    XPCmdShellEnabled (System.Boolean) [Gets or sets the Boolean property value that specifies whether the XP cmd shell enabled configuration option is enabled.]
    DefaultBackupCompressionEnabled (System.Boolean) [Gets or sets the Boolean property value that specifies whether the default backup compression configuration option is enabled. ]
    ExtensibleKeyManagementEnabled (System.Boolean) [Gets or sets the Boolean property value that specifies whether the extensible key management configuration option is enabled. ]
    FilestreamAccessLevel (Microsoft.SqlServer.Management.Smo.FilestreamAccessLevelType) [Gets the Filestream access level. ]
    OptimizeAdhocWorkloads (System.Boolean) [When this option is set, plan cache size is further reduced for single-use adhoc OLTP workload.]

Server DDL Trigger (ServerDdlTrigger)
Description:Exposes properties of the ServerDdlTrigger object.
Evaluated by:CheckOnSchedule
TargetTypes are:ServerDdlTrigger

Properties are:
    AnsiNullsStatus (System.Boolean) [Gets or sets the Boolean property value that specifies whether SQL-92 NULL handling is enabled in the data definition language (DDL) trigger. ]
    AssemblyName (System.String) [Gets or sets the name of the assembly that contains the managed code that is executed when the data definition language (DDL) trigger is raised. ]
    BodyStartIndex (System.Int32) [Gets the index value that represents the start of the data definition language (DDL) trigger text body. ]
    ClassName (System.String) [Gets or sets the name of the class in the assembly that contains the managed code that is executed when the data definition language (DDL) trigger is raised. ]
    CreateDate (System.DateTime) [Gets the date and time when the server data definition language (DDL) trigger was created. ]
    DateLastModified (System.DateTime) [Gets the date and time when the server data definition language (DDL) trigger was last modified. ]
    ExecutionContext (Microsoft.SqlServer.Management.Smo.ServerDdlTriggerExecutionContext) [Gets the execution conext of the DDL trigger. ]
    ExecutionContextLogin (System.String) [Gets the execution conext login for the DDL trigger. ]
    ID (System.Int32) [Gets the ID value that uniquely identifies the server data definition language (DDL) trigger. ]
    ImplementationType (Microsoft.SqlServer.Management.Smo.ImplementationType) [Gets or sets the implementation type for the server data definition language (DDL) trigger. ]
    IsEnabled (System.Boolean) [Gets or sets the Boolean property value that specifies whether the server data definition language (DDL) trigger is enabled. ]
    IsEncrypted (System.Boolean) [Gets or sets a Boolean property value that specifies whether the Transact-SQL batch or managed code is encrypted. ]
    IsSystemObject (System.Boolean) [Gets the Boolean property value that specifies whether the server data definition language (DDL) trigger is a system object. ]
    MethodName (System.String) [Gets or sets the name of the method that is owned by the class in the assembly, which is executed when the trigger is raised. ]
    QuotedIdentifierStatus (System.Boolean) [Gets or sets a Boolean property value that specifies whether identifiers delimited by double quotation marks are Transact-SQL reserved keywords or contain characters not usually allowed by the Transact-SQL syntax rules. ]
    Text (System.String) [Gets or sets the Transact-SQL statement that defines the server data definition language (DDL) trigger. ]
    Name (System.String) [Gets or sets the name of the object.(inherited from NamedSmoObject) ]

Server Information (IServerInformation)
Description:Exposes properties of the Server regarding information about the server.
Evaluated by:CheckOnSchedule
TargetTypes are:Server

Properties are:
    Collation (System.String) [Gets the default collation for the instance of Microsoft SQL Server. ]
    Edition (System.String) [Gets the edition of the instance of Microsoft SQL Server. ]
    ErrorLogPath (System.String) [Exposes properties of the Server object.]
    IsCaseSensitive (System.Boolean) [Gets the Boolean value that specifies whether the instance of Microsoft SQL Server is case sensitive. ]
    IsClustered (System.Boolean) [Gets the Boolean value that specifies whether the instance of Microsoft SQL Server is a clustered server. ]
    IsFullTextInstalled (System.Boolean) [Gets the Boolean value that specifies whether the full-text component is installed with the current instance of SQL Server.]
    IsSingleUser (System.Boolean) [Gets the Boolean value that specifies whether the instance of Microsoft SQL Server is read-only. ]
    Language (System.String) [Gets the default language used by the instance of Microsoft SQL Server. ]
    MasterDBLogPath (System.String) [Gets the log file directory for the master database on the instance of Microsoft SQL Server. ]
    MasterDBPath (System.String) [Gets the database file directory for the master database on the instance of Microsoft SQL Server. ]
    MaxPrecision (System.Byte) [Gets the greatest decimal precision available for exact numeric data types (not floating point), including decimal and numeric. ]
    NetName (System.String) [Gets the NetBIOS name of the network on which the instance of Microsoft SQL Server is running. ]
    OSVersion (System.String) [Gets the operating system version of the computer running the instance of Microsoft SQL Server. ]
    PhysicalMemory (System.Int32) [Gets the total RAM installed, in megabytes, for the computer running the instance of Microsoft SQL Server. ]
    Platform (System.String) [Gets the hardware platform for the computer running the instance of Microsoft SQL Server. ]
    Processors (System.Int32) [Gets the number of processors installed on the computer running the instance of Microsoft SQL Server. ]
    Product (System.String) [Gets the product title for the instance of Microsoft SQL Server. ]
    ProductLevel (System.String) [Gets the product level for the instance of Microsoft SQL Server. ]
    RootDirectory (System.String) [Gets the root directory for the instance of Microsoft SQL Server. ]
    VersionString (System.String) [Gets the date, version, and processor type of the instance of Microsoft SQL Server.]
    EngineEdition (Microsoft.SqlServer.Management.Smo.Edition) [Gets the Database Engine edition of the instance of SQL Server installed on the server.
1 =Personal or Desktop Engine
2 =Standard (This is returned for Standard and Workgroup.)
3 =Enterprise (This is returned for Enterprise, Enterprise Evaluation, and Developer.)
4 =Express (This is returned for Express, Express Edition with Advanced Services, and Windows Embedded SQL.) ]
    VersionMajor (System.Int32) [Gets the major version of the instance of Microsoft SQL Server.]
    VersionMinor (System.Int32) [Gets the minor version of the instance of Microsoft SQL Server.]
    BuildClrVersionString (System.String) [Gets the version of the Microsoft .NET Framework common language runtime (CLR) that was used while building the instance of SQL Server.]
    BuildNumber (System.Int32) [Gets the build number part of the server version information.]
    CollationID (System.Int32) [Gets the ID of the SQL Server collation.]
    ComparisonStyle (System.Int32) [Gets the Windows comparison style of the collation.]
    ComputerNamePhysicalNetBIOS (System.String) [Gets the NetBIOS name of the local computer on which the instance of SQL Server is currently running. For a clustered instance of SQL Server on a failover cluster, this value changes as the instance of SQL Server fails over to other nodes in the failover cluster. On a stand-alone instance of SQL Server, this value remains constant and returns the same value as the MachineName property.]
    ResourceLastUpdateDateTime (System.DateTime) [Returns the date and time that the Resource database was last updated.]
    ResourceVersionString (System.String) [Returns the version Resource database.]
    SqlCharSet (System.Int16) [Gets the SQL character set ID from the collation ID.]
    SqlCharSetName (System.String) [Gets the SQL character set name from the collation.]
    SqlSortOrder (System.Int16) [Gets the SQL sort order ID from the collation.]
    SqlSortOrderName (System.String) [Gets the SQL sort order name from the collation.]

Server Installation Settings (IServerSetupFacet)
Description:Exposes setup and installation properties of the server.
Evaluated by:CheckOnSchedule
TargetTypes are:Server

Properties are:
    ServiceName (System.String) [Get the service name for the server.]
    EngineServiceAccount (System.String) [Gets the service account name for SQL Server service.]
    ServiceStartMode (Microsoft.SqlServer.Management.Smo.ServiceStartMode) [Get the SQL Server service startup type.]
    InstanceName (System.String) [Gets the name of the instance of SQL Server.  ]
    ServiceInstanceIdSuffix (System.String) [Gets the suffix of the instance ID. The instance ID specifies the installation location for server components.]
    FilestreamLevel (Microsoft.SqlServer.Management.Smo.FileStreamEffectiveLevel) [Gets the enabled level of FILESTREAM.]
    FilestreamShareName (System.String) [Gets the name of the file share for FILESTREAM.]
    UserInstancesEnabled (System.Boolean) [Gets or sets the user instances configuration option is enabled. ]
    Collation (System.String) [Gets the default collation for the instance of Microsoft SQL Server. ]
    SqlDomainGroup (System.String) [Gets the configuration of the SQL Server domain group.]
    WindowsUsersAndGroupsInSysadminRole (System.String[]) [Gets the Windows users and groups that are SQL Server system administrators.]
    LoginMode (Microsoft.SqlServer.Management.Smo.ServerLoginMode) [Gets or sets the logon mode for Microsoft SQL Server. ]
    InstallDataDirectory (System.String) [Gets the installation path of the server data directories.]
    BackupDirectory (System.String) [Gets the default backup directory for the instance of Microsoft SQL Server. ]
    DefaultFile (System.String) [Gets or sets the default data file directory for the instance of Microsoft SQL Server. ]
    DefaultLog (System.String) [Gets or sets the default log file directory for the instance of Microsoft SQL Server. ]
    TempdbPrimaryFilePath (System.String) [Gets the path of the tempdb primary data file.]
    TempdbLogPath (System.String) [Gets the path of the the tempdb log file.]
    AgentStartMode (Microsoft.SqlServer.Management.Smo.ServiceStartMode) [Gets the startup type of the SQL Server Agent service.]
    AgentServiceAccount (System.String) [Gets the service account name for SQL Server Agent.]
    AgentDomainGroup (System.String) [Gets the configuration of the domain group for SQL Server Agent.]
    NamedPipesEnabled (System.Boolean) [Boolean value that specifies whether the Named Pipes protocol is enabled.]
    TcpEnabled (System.Boolean) [Boolean value that specifies whether the TCP/IP protocol is enabled.]
    InstallSharedDirectory (System.String) [Root installation directory for shared components.]
    BrowserStartMode (Microsoft.SqlServer.Management.Smo.ServiceStartMode) [Root installation directory for shared components.]
    BrowserServiceAccount (System.String) [Gets the service account name for the SQL Server Browser service.]

Server Performance (IServerPerformanceFacet)
Description:Exposes properties of the Server object that encapsulate performance aspects of an instance of the Database Engine.
Evaluated by:CheckOnSchedule
TargetTypes are:Server

Properties are:
    AffinityMask (System.Int32) [Binds SQL Server disk I/O to a specified subset of CPUs.]
    Affinity64Mask (System.Int32) [Binds SQL Server disk I/O to a specified subset of CPUs. This option is available only on the 64-bit version of Microsoft SQL Server.]
    AffinityIOMask (System.Int32) [Binds SQL Server threads to a specified subset of CPUs.]
    Affinity64IOMask (System.Int32) [Binds processors to specific threads. This option is similar to the affinity mask option. Use affinity mask to bind the first 32 processors, and use affinity64 mask to bind the remaining processors on the computer. This option is available only on the 64-bit version of Microsoft SQL Server.]
    BlockedProcessThreshold (System.Int32) [Exposes properties of the Server object that encapsulate performance aspects of an instance of the Database Engine.]
    DynamicLocks (System.Int32) [Sets the maximum number of available locks. This option limits the amount of memory the Database Engine uses for locks.]
    LightweightPoolingEnabled (System.Boolean) [Provides a means of reducing the system overhead that is associated with the excessive context switching that occurs sometimes in symmetric multiprocessing (SMP) environments.]
    MaxDegreeOfParallelism (System.Int32) [Exposes properties of the Server object that encapsulate performance aspects of an instance of the Database Engine.]
    CostThresholdForParallelism (System.Int32) [Specifies the threshold at which SQL Server creates and runs parallel plans for queries. ]
    MaxWorkerThreads (System.Int32) [Configures the number of worker threads that are available to SQL Server processes.]
    NetworkPacketSize (System.Int32) [Sets the packet size (in bytes) that is used across the whole network]
    OpenObjects (System.Int32) [Sets the maximum number of database objects that can be open at one time on an instance of SQL Server 2000 Database objects are those objects that are defined in the sysobjects table: tables, views, rules, stored procedures, defaults, and triggers]

Server Security (IServerSecurityFacet)
Description:Exposes properties of the Server object that encapsulates security aspects of an instance of the Database Engine.
Evaluated by:CheckOnSchedule
TargetTypes are:Server

Properties are:
    PublicServerRoleIsGrantedPermissions (System.Boolean) [Returns True if the Public server role has permissions set on the server.]
    LoginMode (Microsoft.SqlServer.Management.Smo.ServerLoginMode) [Authentication Mode on SQL Server]
    XPCmdShellEnabled (System.Boolean) [xp_cmdshell creates a Windows process that has same security rights as the SQL Server service.]
    CrossDBOwnershipChainingEnabled (System.Boolean) [Configures cross-database ownership chaining for an instance of SQL Server.]
    CommonCriteriaComplianceEnabled (System.Boolean) [The common criteria compliance enabled option enables the following: Residual Information Protection (RIP), the ability to view login statistics, and that column GRANT should not override table DENY.]
    CmdExecRightsForSystemAdminsOnly (System.Boolean) [Confirms that only members of sysadmins fixed server role can execute CmdExec and ActiveX Script job steps. Applies only to SQL Server 2000.]
    ProxyAccountIsGrantedToPublicRole (System.Boolean) [Checks whether SQL Server Agent proxy account has been granted to the Public role. Returns True if a SQL Server Agent proxy account has been granted to the Public role. Applies only to SQL Server 2005 and later versions.]
    ReplaceAlertTokensEnabled (System.Boolean) [Alert Replacement flag enables replacement of alert tokens. Applies only to SQL Server 2005 Service Pack 1 and later versions.]
    ProxyAccountEnabled (System.Boolean) [xp_cmdshell is executed under the context of the Server Proxy account.]

Server Settings (IServerSettings)
Description:Exposes properties of the Server regarding settings for the server.
Evaluated by:CheckOnSchedule
TargetTypes are:Server

Properties are:
    AuditLevel (Microsoft.SqlServer.Management.Smo.AuditLevel) [Gets or sets the audit level for the instance of Microsoft SQL Server. ]
    BackupDirectory (System.String) [Gets the default backup directory for the instance of Microsoft SQL Server. ]
    DefaultFile (System.String) [Gets or sets the default data file directory for the instance of Microsoft SQL Server. ]
    DefaultLog (System.String) [Gets or sets the default log file directory for the instance of Microsoft SQL Server. ]
    LoginMode (Microsoft.SqlServer.Management.Smo.ServerLoginMode) [Gets or sets the logon mode for Microsoft SQL Server. ]
    MailProfile (System.String) [Gets or sets the mail profile for the instance of Microsoft SQL Server. ]
    NumberOfLogFiles (System.Int32) [Gets or sets the number of log files used by databases on the instance of Microsoft SQL Server.  ]
    PerfMonMode (Microsoft.SqlServer.Management.Smo.PerfMonMode) [Gets the polling behavior of Performance Monitor on the instance of SQL Server.]
    TapeLoadWaitTime (System.Int32) [Gets or sets the time to wait for a tape to load on a tape backup device.]

Service Contract (ServiceContract)
Description:Name of the Service Broker contract. This defines the message types that are allowed in conversations.
Evaluated by:CheckOnSchedule
TargetTypes are:ServiceContract

Properties are:
    ID (System.Int32) [Gets the ID value that uniquely identifies the service contract.]
    IsSystemObject (System.Boolean) [Gets the Boolean property that specifies whether the message type is a system object. ]
    Owner (System.String) [The database principal that owns the service contract.]
    Name (System.String) [Gets or sets the name of the object.(inherited from NamedSmoObject) ]

Service Queue (ServiceQueue)
Description:Name of the queue, which receives Service Broker messages.
Evaluated by:CheckOnSchedule
TargetTypes are:ServiceQueue

Properties are:
    ActivationExecutionContext (Microsoft.SqlServer.Management.Smo.ActivationExecutionContext) [Indicates whether the activation EXECUTE AS clause specified OWNER, SELF, or a specific database principal.]
    CreateDate (System.DateTime) [Date when the queue was created.]
    DateLastModified (System.DateTime) [Date when the queue was last altered.]
    ExecutionContextPrincipal (System.String) [The database principal under which the activation stored procedure runs.]
    FileGroup (System.String) [File group on which the queue is located]
    ID (System.Int32) [Gets the ID value that uniquely identifies the service queue.]
    IsActivationEnabled (System.Boolean) [Specifies whether activation is enabled is queue]
    IsEnqueueEnabled (System.Boolean) [Specifies whether an activation stored procedure is run to receive messages from the queue.]
    IsRetentionEnabled (System.Boolean) [Specifies whether messages are retained until the conversation ends, or deleted when the receive commits.]
    IsSystemObject (System.Boolean) [Gets the Boolean property that specifies whether the message type is a system object. ]
    MaxReaders (System.Int16) [The maximum number of copies of the activation stored procedure that can be run concurrently.]
    ProcedureDatabase (System.String) [Name of the database that contains the activation stored procedure.]
    ProcedureName (System.String) [Name of the activation stored procedure used to process messages in this queue.]
    ProcedureSchema (System.String) [Name of the schema that contains the stored procedure]
    RowCount (System.Int64) [The number of messages in the queue.]
    Schema (System.String) [Gets or sets the schema.(inherited from ScriptSchemaObjectBase)    ]
    Name (System.String) [Gets or sets the name of the object.(inherited from NamedSmoObject) ]

Service Route (ServiceRoute)
Description:Name of the route. This specifies the network address of a Service Broker service.
Evaluated by:CheckOnSchedule
TargetTypes are:ServiceRoute

Properties are:
    Address (System.String) [The network address of the instance of the Database Engine that is hosting the Service Broker service.]
    BrokerInstance (System.String) [The unique identifier that Service Broker assigned to the database that hosts the service.]
    ExpirationDate (System.DateTime) [The date and time when the route expires.]
    ID (System.Int32) [Gets the ID value that uniquely identifies the service route.]
    MirrorAddress (System.String) [The network address of a mirrored copy of the Service Broker service that is addressed by this route.]
    Owner (System.String) [The database principal that owns the service route.]
    RemoteService (System.String) [The Service Broker service whose address is specified by the service route.]
    Name (System.String) [Gets or sets the name of the object.(inherited from NamedSmoObject) ]

Statistic (Statistic)
Description:Exposes properties of the Statistic object.
Evaluated by:CheckOnSchedule
TargetTypes are:Statistic

Properties are:
    FileGroup (System.String) [Gets or sets the file group property of the Statistic.]
    ID (System.Int32) [Gets the ID value that uniquely identifies the Statistic.]
    IsAutoCreated (System.Boolean) [Gets the Boolean property value that specifies whether the Statistic counter is automatically created.]
    IsFromIndexCreation (System.Boolean) [Gets the Boolean property value that specifies whether the statistic counter was generated from the creation of an index.]
    LastUpdated (System.DateTime) [Gets the last update property of statistic.]
    NoAutomaticRecomputation (System.Boolean) [Gets or sets the Boolean property value that specifies whether statistics are regenerated when an index is created.]
    FilterDefinition (System.String) [Gets or sets the filter definition property of the Statistic.]
    HasFilter (System.Boolean) [Gets the Boolean property that specifies if the statistic has filter on it.]
    Name (System.String) [Gets or sets the name of the object.(inherited from NamedSmoObject) ]

Stored Procedure (StoredProcedure)
Description:Exposes properties of the StoredProcedure object.
Evaluated by:Enforce, CheckOnChanges, CheckOnSchedule
TargetTypes are:StoredProcedure

Properties are:
    AnsiNullsStatus (System.Boolean) [Gets the Boolean property value that specifies whether SQL-92 NULL handling is enabled in the stored procedure. ]
    CreateDate (System.DateTime) [Gets the date and time when the stored procedure was created. ]
    ForReplication (System.Boolean) [Gets or sets the Boolean property value that specifies whether the stored procedure is available for replication. ]
    ID (System.Int32) [Gets the ID value that uniquely identifies the stored procedure. ]
    ImplementationType (Microsoft.SqlServer.Management.Smo.ImplementationType) [Gets or sets the implementation type of the stored procedure. ]
    IsEncrypted (System.Boolean) [Gets or sets the Boolean property value that specifies whether the stored procedure is encrypted. ]
    IsSystemObject (System.Boolean) [Gets the Boolean property value that specifies whether the stored procedure is a system object. ]
    Owner (System.String) [The name of the database principal that is the owner of the stored procedure.]
    QuotedIdentifierStatus (System.Boolean) [Gets or sets a Boolean property value that specifies whether identifiers delimited by double quotation marks are Transact-SQL reserved keywords or contain characters not usually allowed by the Transact-SQL syntax rules. ]
    Recompile (System.Boolean) [Gets or sets the Boolean property value that specifies whether the stored procedure is recompiled before execution. ]
    Startup (System.Boolean) [Gets or sets the Boolean property value that specifies whether the stored procedure runs when the instance of Microsoft SQL Server starts up. ]
    AssemblyName (System.String) [Gets or sets the name of the .NET assembly required by the referenced stored procedure. ]
    ClassName (System.String) [Gets or sets the name of the class called by the referenced stored procedure. ]
    ExecutionContext (Microsoft.SqlServer.Management.Smo.ExecutionContext) [Gets or sets the execution context for the stored procedure. ]
    ExecutionContextPrincipal (System.String) [Gets or sets the execution context principal for the stored procedure. ]
    IsSchemaOwned (System.Boolean) [Gets the Boolean property value that specifies whether the owner of the stored procedure is schema owner.]
    MethodName (System.String) [Gets the method name for the stored procedure. ]
    Schema (System.String) [Gets or sets the schema.(inherited from ScriptSchemaObjectBase)              ]
    Name (System.String) [Gets or sets the name of the object.(inherited from NamedSmoObject) ]

Surface Area Configuration (ISurfaceAreaFacet)
Description:Surface area configuration for features of the Database Engine. Only the features required by your application should be enabled. Disabling unused features helps protect your server by reducing the surface area.
Evaluated by:CheckOnChanges, CheckOnSchedule
TargetTypes are:Server

Properties are:
    AdHocRemoteQueriesEnabled (System.Boolean) [The OPENROWSET and OPENDATASOURCE functions support ad hoc connections to remote data sources without linked or remote servers. Enable these functions only if your applications and scripts call them.]
    DatabaseMailEnabled (System.Boolean) [Database Mail is a component for sending e-mail messages from the Database Engine using SMTP. Enable Database Mail stored procedures only if you plan to configure and use Database Mail.]
    ClrIntegrationEnabled (System.Boolean) [Common language runtime (CLR) integration enables you to write stored procedures, triggers, user-defined types and user-defined functions using any .NET Framework language. Enable CLR integration only if you use the CLR.]
    OleAutomationEnabled (System.Boolean) [The OLE Automation extended stored procedures (XPs) allow Transact-SQL batches, stored procedures, and triggers to reference custom OLE Automation objects. Enable OLE Automation only if applications or Transact-SQL scripts use OLE Automation XPs.]
    RemoteDacEnabled (System.Boolean) [A dedicated administrator connection (DAC) allows an administrator to connect to a server when the Database Engine will not respond to regular connections. Enable this option only if you will use DAC from a remote computer.]
    SqlMailEnabled (System.Boolean) [SQL Mail supports legacy applications that send and receive e-mail messages from the Database Engine. SQL Mail is deprecated in SQL Server 2005 and replaced by Database Mail. Enable SQL Mail stored procedures only if you plan to configure and use SQL Mail for backward compatibility.]
    WebAssistantEnabled (System.Boolean) [Web Assistant stored procedures, which generate HTML files from SQL Server databases, are deprecated in SQL Server 2005. Enable Web Assistance only if your applications generate HTML using Web Assistant stored procedures.]
    XPCmdShellEnabled (System.Boolean) [xp_cmdshell creates a Windows process that has same security rights as the SQL Server service.]
    ServiceBrokerEndpointActive (System.Boolean) [Service Broker provides queuing and reliable messaging for the Database Engine. Service Broker uses an endpoint for communication between instances, which opens a TCP/IP port on the server. Enable the Service Broker endpoint only if your applications use Service Broker to communicate between instances. Returns TRUE when a Service Broker endpoint exists and is in the STARTED state. Returns FALSE when Service Broker does not exist on the computer or it exists but is not started. Configure the endpoint to TRUE to start a stopped or disabled endpoint. The operation will fail if the endpoint does not exist on the server. Configure the endpoint to FALSE to disable the Service Broker endpoint.]
    SoapEndpointsEnabled (System.Boolean) [The SOAP endpoint can be in either a started, stopped or disabled state. Returns TRUE if at least one SOAP endpoint is responding to SOAP requests. Returns FALSE if all SOAP endpoints are disabled or if there are no SOAP endpoints. Configuring it to FALSE will disable all the soap endpoints.]

Surface Area Configuration for Analysis Services (ISurfaceAreaConfigurationForAnalysisServer)
Description:Exposes the surface area configuration properties of the Analysis Services features.
Evaluated by:None
TargetTypes are:Server

Properties are:
    AdHocDataMiningQueriesEnabled (System.Boolean) [The Data Mining Extensions (DMX) OPENROWSET statement supports ad hoc queries using external providers. Enable ad hoc data mining queries only if your applications and scripts use this statement.]
    AnonymousConnectionsEnabled (System.Boolean) [Anonymous connections allow unauthenticated users to establish connections with an Analysis Services instance. Enable anonymous connections only if your applications require unauthenticated users to connect to the instance.]
    LinkedObjectsLinksToOtherInstancesEnabled (System.Boolean) [Analysis Services supports linked objects, which link dimensions and measure groups between instances. Enable linked objects - links to other instances, only if this Analysis Service instance link to objects on other Analysis Services instances.]
    LinkedObjectsLinksFromOtherInstancesEnabled (System.Boolean) [Analysis Services supports linked objects, which link dimensions and measure groups between instances. Enable linked objects - links from other instances, only if other instances of Analysis Services link to objects on this instance.]
    UserDefinedFunctionsEnabled (System.Boolean) [Analysis Services can load assemblies that contain user-defined functions. These functions can be based on the common language runtime (CLR) or can be Component Object Model (COM) objects. CLR-based objects can be secured using the CLR security model, but COM objects cannot. Enable loading of COM functions only if your applications require them.]
    ListenOnlyOnLocalConnections (System.Boolean) [Enabling remote connections for Analysis Services opens a TCP/IP port on the server. Enable remote connections only if you want to allow connections from remote computers.]

Surface Area Configuration for Reporting Services (ISurfaceAreaConfigurationForReportingServices)
Description:Exposes the surface area configuration properties of the Reporting Services features.
Evaluated by:None
TargetTypes are:RSContainer

Properties are:
    WebServiceAndHTTPAccessEnabled (System.Boolean) [The Report Server Web service can receive Simple Object Access Protocol (SOAP) requests and URL access requests. Enable Web service and HTTP access only if your client applications use the Web service or if you use Report Manager, Report Builder, or SQL Server Management Studio with this Reporting Services installation.]
    ScheduleEventsAndReportDeliveryEnabled (System.Boolean) [Reporting Services uses schedules to trigger subscriptions, report cache expirations, and report snapshot executions. Enable scheduled events and report delivery if you schedule these operations.]
    ReportManagerEnabled (System.Boolean) [Report Manager Enabled]

Symmetric Key (SymmetricKey)
Description:Exposes properties of the SymmetricKey object.
Evaluated by:CheckOnSchedule
TargetTypes are:SymmetricKey

Properties are:
    CreateDate (System.DateTime) [Gets the date and time when the symmetric key was created. ]
    DateLastModified (System.DateTime) [Gets the date and time when the symmetric key was last modified. ]
    EncryptionAlgorithm (Microsoft.SqlServer.Management.Smo.SymmetricKeyEncryptionAlgorithm) [Gets or sets the symmetric key encryption algorithm. ]
    ID (System.Int32) [Gets the ID value that uniquely identifies the symmetric key. ]
    IsOpen (System.Boolean) [Gets the Boolean property value that specifies whether the symmetric key is open. ]
    KeyGuid (System.Guid) [Get the GUID value that uniquely identifies the symmetric key globally. ]
    KeyLength (System.Int32) [Gets the length of the symmetric key in bits. ]
    Owner (System.String) [Gets or sets the owner of the symmetric key. ]
    ProviderName (System.String) [The provider name for the symmetric key.]
    Name (System.String) [Gets or sets the name of the object.(inherited from NamedSmoObject) ]

Synonym (Synonym)
Description:Exposes properties of the Synonym object.
Evaluated by:CheckOnSchedule
TargetTypes are:Synonym

Properties are:
    BaseDatabase (System.String) [Gets the base database on which the base object resides. ]
    BaseObject (System.String) [Gets or sets the base object for which the synonym is defined. ]
    BaseSchema (System.String) [Gets or sets the schema of the base object. ]
    BaseServer (System.String) [Gets or sets the instance of Microsoft SQL Server on which the base object resides. ]
    BaseType (Microsoft.SqlServer.Management.Smo.SynonymBaseType) [Gets or sets the base type for which the synonym is defined. ]
    CreateDate (System.DateTime) [Gets the date and time when the synonym was created. ]
    DateLastModified (System.DateTime) [Gets the date and time when the synonym was last modified. ]
    ID (System.Int32) [Gets the ID value that uniquely identifies the synonym. ]
    IsSchemaOwned (System.Boolean) [Gets the Boolean property value that specifies whether the owner of the synonym is schema owner.]
    Owner (System.String) [The name of the database principal that is the owner of the synonym.]
    Schema (System.String) [Gets or sets the schema.(inherited from ScriptSchemaObjectBase)              ]
    Name (System.String) [Gets or sets the name of the object.(inherited from NamedSmoObject) ]

Table (Table)
Description:Exposes properties of the Table object.
Evaluated by:CheckOnSchedule
TargetTypes are:Table

Properties are:
    CreateDate (System.DateTime) [Gets the date and time when the table was created. ]
    DataSpaceUsed (System.Double) [Gets the storage space used by the rows of the referenced table in kilobytes. ]
    FakeSystemTable (System.Boolean) [Gets the Boolean value that specifies whether the table is references a system table.  ]
    FileGroup (System.String) [Gets or sets the filegroup where the table is stored. ]
    HasClusteredIndex (System.Boolean) [Gets the Boolean property value that specifies whether the table has a clustered index.  ]
    ID (System.Int32) [Gets the ID value that uniquely identifies the table. ]
    IndexSpaceUsed (System.Double) [Gets the space used by the index, in kilobytes. ]
    IsSystemObject (System.Boolean) [Gets the Boolean property value that specifies whether the table is a system object. ]
    Owner (System.String) [The name of the database principal that is the owner of the table.]
    Replicated (System.Boolean) [Gets the Boolean property that specifies whether the table is replicated. ]
    RowCount (System.Int64) [Gets the number of rows in the table. ]
    TextFileGroup (System.String) [Gets or sets the filegroup used to maintain long, variable-length data stored in the table. ]
    AnsiNullsStatus (System.Boolean) [Gets the Boolean property value that specifies whether SQL-92 NULL handling is enabled on the table. ]
    HasAfterTrigger (System.Boolean) [Gets the Boolean property value that specifies whether the table has any after triggers.  ]
    HasDeleteTrigger (System.Boolean) [Gets the Boolean property value that specifies whether the table has a delete trigger.  ]
    HasIndex (System.Boolean) [Gets the Boolean property value that specifies whether the table has at least one index.  ]
    HasInsertTrigger (System.Boolean) [Gets the Boolean property value that specifies whether the table has an insert trigger.  ]
    HasInsteadOfTrigger (System.Boolean) [Gets the Boolean property value that specifies whether the table has any instead of triggers.  ]
    HasUpdateTrigger (System.Boolean) [Gets the Boolean property value that specifies whether the table has an update trigger.  ]
    IsIndexable (System.Boolean) [Gets the Boolean property value that specifies whether an index can be placed on the table.  ]
    QuotedIdentifierStatus (System.Boolean) [Gets or sets a Boolean property value that specifies whether identifiers delimited by double quotation marks are Transact-SQL reserved keywords or contain characters not usually allowed by the Transact-SQL syntax rules. ]
    DateLastModified (System.DateTime) [Gets the date and time when the table was last modified. ]
    IsPartitioned (System.Boolean) [Gets the Boolean property value that specifies whether the table is partitioned. ]
    IsSchemaOwned (System.Boolean) [Gets the Boolean property value that specifies whether the owner of the table is schema owner.]
    IsVarDecimalStorageFormatEnabled (System.Boolean) [Gets the Boolean value that indicates whether var decimal storage is enabled.]
    PartitionScheme (System.String) [Gets or sets the partition scheme configured for the table. ]
    ChangeTrackingEnabled (System.Boolean) [Specifies whether change tracking is enabled.]
    FileStreamFileGroup (System.String) [Gets or sets the filestream filegroup where the table is stored.]
    FileStreamPartitionScheme (System.String) [Gets or sets the filestream partition scheme configured for the table.]
    HasCompressedPartitions (System.Boolean) [Gets the Boolean value that indicates whether the table or index has compressed partitions. This property also returns True for an unpartitioned compressed table.]
    LockEscalation (Microsoft.SqlServer.Management.Smo.LockEscalationType) [Gets or sets a Boolean property value that specifies lock escalation granularity]
    TrackColumnsUpdatedEnabled (System.Boolean) [Specifies whether track columns update is enabled.]
    Schema (System.String) [Gets or sets the schema.(inherited from ScriptSchemaObjectBase)              ]
    Name (System.String) [Gets or sets the name of the object.(inherited from NamedSmoObject) ]

Table Options (ITableOptions)
Description:Exposes option properties of the Table object.
Evaluated by:Enforce, CheckOnChanges, CheckOnSchedule
TargetTypes are:Table

Properties are:
    AnsiNullsStatus (System.Boolean) [Gets the Boolean property value that specifies whether SQL-92 NULL handling is enabled on the table. ]
    ChangeTrackingEnabled (System.Boolean) [Specifies whether change tracking is enabled.]
    CreateDate (System.DateTime) [Gets the date and time when the table was created. ]
    FakeSystemTable (System.Boolean) [Gets the Boolean value that specifies whether the table is references a system table.  ]
    ID (System.Int32) [Gets the ID value that uniquely identifies the table. ]
    IsSchemaOwned (System.Boolean) [Gets the Boolean property value that specifies whether the owner of the table is schema owner.]
    IsSystemObject (System.Boolean) [Gets the Boolean property value that specifies whether the table is a system object. ]
    LockEscalation (Microsoft.SqlServer.Management.Smo.LockEscalationType) [Gets or sets a Boolean property value that specifies lock escalation granularity]
    Name (System.String) [Gets or sets the name of the object.(inherited from NamedSmoObject) ]
    Owner (System.String) [The name of the database principal that is the owner of the table.]
    QuotedIdentifierStatus (System.Boolean) [Gets or sets a Boolean property value that specifies whether identifiers delimited by double quotation marks are Transact-SQL reserved keywords or contain characters not usually allowed by the Transact-SQL syntax rules. ]
    Replicated (System.Boolean) [Gets the Boolean property that specifies whether the table is replicated. ]
    Schema (System.String) [Gets or sets the schema.(inherited from ScriptSchemaObjectBase)              ]
    TrackColumnsUpdatedEnabled (System.Boolean) [Specifies whether track columns update is enabled.]

Trigger (Trigger)
Description:Exposes properties of the Trigger object.
Evaluated by:CheckOnSchedule
TargetTypes are:Trigger

Properties are:
    AnsiNullsStatus (System.Boolean) [Gets the Boolean property value that specifies whether SQL-92 NULL handling is enabled in the trigger. ]
    CreateDate (System.DateTime) [Gets the date and time when the trigger was created. ]
    Delete (System.Boolean) [Gets or sets the Boolean property value that specifies whether the trigger is executed when records are deleted from the table. ]
    DeleteOrder (Microsoft.SqlServer.Management.Smo.Agent.ActivationOrder) [Gets or sets the order in which the trigger and the delete operation are executed. ]
    ID (System.Int32) [Gets the ID value that uniquely identifies the trigger. ]
    ImplementationType (Microsoft.SqlServer.Management.Smo.ImplementationType) [Gets or sets the implementation type of the trigger. ]
    Insert (System.Boolean) [Gets or sets the Boolean property value that specifies whether the trigger is fired when records are inserted into the table. ]
    InsertOrder (Microsoft.SqlServer.Management.Smo.Agent.ActivationOrder) [Gets or sets the order in which the trigger and the insert operation are executed. ]
    InsteadOf (System.Boolean) [Gets or sets a Boolean property that specifies whether the trigger runs instead of the insert, delete, or update operation. ]
    IsEnabled (System.Boolean) [Gets or sets the Boolean property that specifies whether the trigger is enabled. ]
    IsEncrypted (System.Boolean) [Gets or sets the Boolean property value that specifies whether the trigger is encrypted. ]
    IsSystemObject (System.Boolean) [Gets the Boolean property value that specifies whether the trigger is a system object. ]
    NotForReplication (System.Boolean) [Gets or sets a Boolean property value that specifies whether the trigger is included in replication operations. ]
    QuotedIdentifierStatus (System.Boolean) [Gets or sets a Boolean property value that specifies whether identifiers delimited by double quotation marks are Transact-SQL reserved keywords or contain characters not usually allowed by the Transact-SQL syntax rules. ]
    Update (System.Boolean) [Gets or sets the Boolean property value that specifies whether the trigger is fired when records are updated in the table. ]
    UpdateOrder (Microsoft.SqlServer.Management.Smo.Agent.ActivationOrder) [Gets or sets the order in which the trigger and the update operation are executed. ]
    AssemblyName (System.String) [Gets or sets the name of the .NET assembly required by the referenced trigger. ]
    ClassName (System.String) [Gets or sets the name of the class called by the referenced trigger. ]
    DateLastModified (System.DateTime) [Gets the date and time when the trigger was last modified. ]
    ExecutionContext (Microsoft.SqlServer.Management.Smo.ExecutionContext) [Gets or sets the execution context.  ]
    ExecutionContextPrincipal (System.String) [Gets or sets the execution context principal.  ]
    MethodName (System.String) [Gets the method name for the trigger. ]
    Name (System.String) [Gets or sets the name of the object.(inherited from NamedSmoObject) ]

User (User)
Description:Exposes properties of the User object.
Evaluated by:CheckOnSchedule
TargetTypes are:User

Properties are:
    CreateDate (System.DateTime) [Gets the date and time when the database user was created. ]
    DateLastModified (System.DateTime) [Gets the date and time when the database user was last modified. ]
    HasDBAccess (System.Boolean) [Gets the Boolean property that specifies whether the database user has access to the database. ]
    ID (System.Int32) [Gets the ID value that uniquely identifies the database user. ]
    IsSystemObject (System.Boolean) [Gets the Boolean property that specifies whether the database user is a system object. ]
    Login (System.String) [Gets the login that is associated with the database user. ]
    LoginType (Microsoft.SqlServer.Management.Smo.LoginType) [Gets the type of login that is associated with the database user, such as whether it is a Microsoft Windows group or a Microsoft SQL Server standard login. ]
    Sid (System.Byte[]) [Gets the security identification number (SID) value of the database user. ]
    UserType (Microsoft.SqlServer.Management.Smo.UserType) [Gets or sets the type of user.  ]
    AsymmetricKey (System.String) [Gets or sets the asymmetric key for the user. ]
    Certificate (System.String) [Gets or sets the certificate for the user. ]
    DefaultSchema (System.String) [Gets the default schema for the database user. ]
    Name (System.String) [Gets or sets the name of the object.(inherited from NamedSmoObject) ]

User Defined Aggregate (UserDefinedAggregate)
Description:Exposes properties of the UserDefinedAggregate object.
Evaluated by:CheckOnSchedule
TargetTypes are:UserDefinedAggregate

Properties are:
    AssemblyName (System.String) [Gets or sets the assembly name property of user-defined aggregate.]
    ClassName (System.String) [Gets or sets the class name property of user-defined aggregate.]
    CreateDate (System.DateTime) [Gets the create date property of user-defined aggregate.]
    DateLastModified (System.DateTime) [Gets the date last modified property of user-defined aggregate.]
    ID (System.Int32) [Gets the ID value that uniquely identifies the user-defined aggregate.]
    IsSchemaOwned (System.Boolean) [Gets the 'is schema owned' property of user-defined aggregate.]
    Owner (System.String) [Gets or sets the owner property of user-defined aggregate.]
    Schema (System.String) [Gets or sets the schema.(inherited from ScriptSchemaObjectBase)              ]
    Name (System.String) [Gets or sets the name of the object.(inherited from NamedSmoObject) ]

User Defined Data Type (UserDefinedDataType)
Description:Exposes properties of the  user-defined data type object.
Evaluated by:CheckOnSchedule
TargetTypes are:UserDefinedDataType

Properties are:
    AllowIdentity (System.Boolean) [Gets the allow identity property of the user-defined data type.]
    Default (System.String) [Gets the default property of  the user-defined data type.]
    DefaultSchema (System.String) [Gets the default schema property of the user-defined data type.]
    ID (System.Int32) [Gets the ID value that uniquely identifies the  user-defined data type.]
    Length (System.Int32) [Gets the length property of the user-defined data type.]
    MaxLength (System.Int16) [Gets the max length property of the user-defined data type.]
    Nullable (System.Boolean) [Gets the nullable property of the user-defined data type.]
    NumericPrecision (System.Int32) [Gets the numeric precesion property of the user-defined data type.]
    NumericScale (System.Int32) [Gets the numeric scale property of the user-defined data type.]
    Owner (System.String) [Gets or sets the owner property of the user-defined data type.]
    Rule (System.String) [Gets the rule property of the user-defined data type.]
    RuleSchema (System.String) [Gets the rule schema property of the user-defined data type.]
    SystemType (System.String) [Gets the system type property of the user-defined data type.]
    VariableLength (System.Boolean) [Gets the variable length property of the user-defined data type.]
    Collation (System.String) [Gets the collation property of  the user-defined data type.]
    IsSchemaOwned (System.Boolean) [Gets the 'is schema owned' property of the user-defined data type.]
    Schema (System.String) [Gets or sets the schema.(inherited from ScriptSchemaObjectBase)              ]
    Name (System.String) [Gets or sets the name of the object.(inherited from NamedSmoObject) ]

User Defined Function (UserDefinedFunction)
Description:Exposes properties of the UserDefinedFunction object.
Evaluated by:Enforce, CheckOnChanges, CheckOnSchedule
TargetTypes are:UserDefinedFunction

Properties are:
    AnsiNullsStatus (System.Boolean) [Gets the Boolean property value that specifies whether SQL-92 NULL handling is enabled in the user-defined function. ]
    CreateDate (System.DateTime) [Gets the date and time when the user-defined function was created. ]
    FunctionType (Microsoft.SqlServer.Management.Smo.UserDefinedFunctionType) [Gets or sets the user-defined function type. ]
    ID (System.Int32) [Gets the ID value that uniquely identifies the user-defined function. ]
    ImplementationType (Microsoft.SqlServer.Management.Smo.ImplementationType) [Gets or sets the implementation type of the user-defined function. ]
    IsDeterministic (System.Boolean) [Gets or sets the Boolean property value that specifies whether the user-defined function is deterministic. ]
    IsEncrypted (System.Boolean) [Gets or sets the Boolean property value that specifies whether the user-defined function is encrypted. ]
    IsSchemaBound (System.Boolean) [Gets or sets the Boolean property value that specifies whether the user-defined function is bound to a schema. ]
    IsSystemObject (System.Boolean) [Gets the Boolean property value that specifies whether the user-defined function is a system object. ]
    Owner (System.String) [The name of the database principal that is the owner of the user defined function.]
    QuotedIdentifierStatus (System.Boolean) [Gets or sets a Boolean property value that specifies whether identifiers delimited by double quotation marks are Transact-SQL reserved keywords or contain characters not usually allowed by the Transact-SQL syntax rules in the user-defined function. ]
    TableVariableName (System.String) [Gets or sets the table variable name. ]
    AssemblyName (System.String) [Gets or sets the name of the assembly for the user-defined function. ]
    ClassName (System.String) [Gets or sets the name of the class for the user-defined function. ]
    ExecutionContext (Microsoft.SqlServer.Management.Smo.ExecutionContext) [Gets or sets the execution context for the user-defined function. ]
    ExecutionContextPrincipal (System.String) [Gets or sets the execution context principal for the user-defined function. ]
    IsSchemaOwned (System.Boolean) [Gets the Boolean property value that specifies whether the owner of the user defined function is schema owner.]
    MethodName (System.String) [Gets the method name for the user-defined function. ]
    ReturnsNullOnNullInput (System.Boolean) [Gets or sets the Boolean property that specifies whether to call the function if at least one of the function arguments is null. ]
    Schema (System.String) [Gets or sets the schema.(inherited from ScriptSchemaObjectBase)              ]
    Name (System.String) [Gets or sets the name of the object.(inherited from NamedSmoObject) ]

User Defined Type (UserDefinedType)
Description:Exposes properties of the UserDefinedType object.
Evaluated by:CheckOnSchedule
TargetTypes are:UserDefinedType

Properties are:
    AssemblyName (System.String) [Gets or sets the name of the .NET assembly required by the referenced alias data type. ]
    BinaryTypeIdentifier (System.Byte[]) [Gets the binary type identifier of the alias data type. ]
    ClassName (System.String) [Gets or sets the name of the class called by the referenced alias data type. ]
    Collation (System.String) [Gets the collation associated with the alias data type. ]
    ID (System.Int32) [Gets the ID value that uniquely identifies the alias data type. ]
    IsBinaryOrdered (System.Boolean) [Gets the Boolean property that specifies whether the alias data type is binary ordered. ]
    IsComVisible (System.Boolean) [Gets the Boolean property that specifies whether the alias data type is accessible from COM components. ]
    IsFixedLength (System.Boolean) [Gets the Boolean property that specifies whether the alias data type is fixed length. ]
    IsNullable (System.Boolean) [Gets the Boolean property that specifies whether the alias data type accepts null values. ]
    IsSchemaOwned (System.Boolean) [Gets the Boolean property value that specifies whether the owner of the user defined type is schema owner.]
    MaxLength (System.Int32) [Gets the maximum length of the alias data type. ]
    NumericPrecision (System.Int32) [Gets the numeric precision of the alias data type. ]
    NumericScale (System.Int32) [Gets the numeric scale of the alias data type.]
    Owner (System.String) [The name of the database principal that is the owner of the user defined type. ]
    UserDefinedTypeFormat (Microsoft.SqlServer.Management.Smo.UserDefinedTypeFormat) [Gets the serialization format for the alias data type.]
    Schema (System.String) [Gets or sets the schema.(inherited from ScriptSchemaObjectBase)              ]
    Name (System.String) [Gets or sets the name of the object.(inherited from NamedSmoObject) ]

User Options (IUserOptions)
Description:Exposes option properties of the User object.
Evaluated by:Enforce, CheckOnChanges, CheckOnSchedule
TargetTypes are:User

Properties are:
    AsymmetricKey (System.String) [Gets or sets the asymmetric key for the user. ]
    Certificate (System.String) [Gets or sets the certificate for the user. ]
    CreateDate (System.DateTime) [Gets the date and time when the database user was created. ]
    DefaultSchema (System.String) [Gets the default schema for the database user. ]
    ID (System.Int32) [Gets the ID value that uniquely identifies the database user. ]
    IsSystemObject (System.Boolean) [Gets the Boolean property that specifies whether the database user is a system object. ]
    Login (System.String) [Gets the login that is associated with the database user. ]
    LoginType (Microsoft.SqlServer.Management.Smo.LoginType) [Gets the type of login that is associated with the database user, such as whether it is a Microsoft Windows group or a Microsoft SQL Server standard login. ]
    Name (System.String) [Gets or sets the name of the object.(inherited from NamedSmoObject) ]
    Sid (System.Byte[]) [Gets the security identification number (SID) value of the database user. ]
    UserType (Microsoft.SqlServer.Management.Smo.UserType) [Gets or sets the type of user.  ]

User-Defined Table Type (UserDefinedTableType)
Description:Exposes properties of the UserDefinedTableType object.
Evaluated by:CheckOnSchedule
TargetTypes are:UserDefinedTableType

Properties are:
    Collation (System.String) [Gets the default collation that is used by the type.]
    CreateDate (System.DateTime) [Gets the create date property of the user-defined table type.]
    DateLastModified (System.DateTime) [Gets the date last modified property of the user-defined table type.]
    ID (System.Int32) [Gets the ID value that uniquely identifies the user-defined table type.]
    IsSchemaOwned (System.Boolean) [Gets the Boolean property value that specifies whether the owner of the user-defined table type is schema owner.]
    IsUserDefined (System.Boolean) [Gets the Boolean property value that specifies whether the user-defined table type is defined by a user.]
    MaxLength (System.Int16) [Gets the maximum length of the user-defined table type.]
    Nullable (System.Boolean) [Gets the Boolean property value that specifies wether the user-defined table type is nullable. ]
    Owner (System.String) [Gets or sets the owner property of the user-defined table type.]
    Schema (System.String) [Gets or sets the schema.(inherited from ScriptSchemaObjectBase)              ]
    Name (System.String) [Gets or sets the name of the object.(inherited from NamedSmoObject) ]

View (View)
Description:Exposes properties of the View object.
Evaluated by:CheckOnSchedule
TargetTypes are:View

Properties are:
    AnsiNullsStatus (System.Boolean) [Gets the Boolean property value that specifies whether SQL-92 NULL handling is enabled on the view. ]
    CreateDate (System.DateTime) [Gets the time and date when the view was created. ]
    HasColumnSpecification (System.Boolean) [Gets the Boolean property that specifies whether the view has a column specification. ]
    ID (System.Int32) [Gets the ID value that uniquely identifies the view. ]
    IsEncrypted (System.Boolean) [Gets or sets the Boolean property that specifies whether the view is encrypted. ]
    IsSchemaBound (System.Boolean) [Gets or sets the Boolean property that specifies whether a schema is bound to the view. ]
    IsSystemObject (System.Boolean) [Gets the Boolean property value that specifies whether the view is a system object. ]
    Owner (System.String) [The name of the database principal that is the owner of the view.]
    QuotedIdentifierStatus (System.Boolean) [Gets or sets a Boolean property value that specifies whether identifiers delimited by double quotation marks are ]
    HasAfterTrigger (System.Boolean) [Gets the Boolean property value that specifies whether the view has any after triggers.  ]
    HasDeleteTrigger (System.Boolean) [Gets the Boolean property value that specifies whether the view has a delete trigger.  ]
    HasIndex (System.Boolean) [Gets the Boolean property value that specifies whether the view has at least one index.  ]
    HasInsertTrigger (System.Boolean) [Gets the Boolean property value that specifies whether the view has an insert trigger.  ]
    HasInsteadOfTrigger (System.Boolean) [Gets the Boolean property value that specifies whether the view has any instead of triggers.  ]
    HasUpdateTrigger (System.Boolean) [Gets the Boolean property value that specifies whether the view has at least one update trigger.  ]
    IsIndexable (System.Boolean) [Gets the Boolean property that specifies whether it is possible to place an index on the view. ]
    DateLastModified (System.DateTime) [Gets the time and date when the view was last modified. ]
    IsSchemaOwned (System.Boolean) [Gets the Boolean property value that specifies whether the owner of the view is schema owner.]
    ReturnsViewMetadata (System.Boolean) [Gets or sets a Boolean property value that specifies whether the view returns metadata. ]
    Schema (System.String) [Gets or sets the schema.(inherited from ScriptSchemaObjectBase)              ]
    Name (System.String) [Gets or sets the name of the object.(inherited from NamedSmoObject) ]

View Options (IViewOptions)
Description:Exposes option properties of the View object.
Evaluated by:Enforce, CheckOnChanges, CheckOnSchedule
TargetTypes are:View

Properties are:
    AnsiNullsStatus (System.Boolean) [Gets the Boolean property value that specifies whether SQL-92 NULL handling is enabled on the view. ]
    CreateDate (System.DateTime) [Gets the time and date when the view was created. ]
    ID (System.Int32) [Gets the ID value that uniquely identifies the view. ]
    IsEncrypted (System.Boolean) [Gets or sets the Boolean property that specifies whether the view is encrypted. ]
    IsSchemaBound (System.Boolean) [Gets or sets the Boolean property that specifies whether a schema is bound to the view. ]
    IsSchemaOwned (System.Boolean) [Gets the Boolean property value that specifies whether the owner of the view is schema owner.]
    IsSystemObject (System.Boolean) [Gets the Boolean property value that specifies whether the view is a system object. ]
    Name (System.String) [Gets or sets the name of the object.(inherited from NamedSmoObject) ]
    Owner (System.String) [The name of the database principal that is the owner of the view.]
    Schema (System.String) [Gets or sets the schema.(inherited from ScriptSchemaObjectBase)              ]
    QuotedIdentifierStatus (System.Boolean) [Gets or sets a Boolean property value that specifies whether identifiers delimited by double quotation marks are ]
    ReturnsViewMetadata (System.Boolean) [Gets or sets a Boolean property value that specifies whether the view returns metadata. ]

Workload Group (WorkloadGroup)
Description:Exposes properties of the WorkloadGroup object.
Evaluated by:Enforce, CheckOnChanges, CheckOnSchedule
TargetTypes are:WorkloadGroup

Properties are:
    GroupMaximumRequests (System.Int32) [Gets or sets the group maximum requests for a workload group. ]
    ID (System.Int32) [Gets the ID value that uniquely identifies the workload group. ]
    Importance (Microsoft.SqlServer.Management.Smo.WorkloadGroupImportance) [Gets or sets the importance for a workload group. ]
    IsSystemObject (System.Boolean) [Gets the Boolean property that specifies whether the workload group is a system object. ]
    MaximumDegreeOfParallelism (System.Int32) [Gets or sets the request maximum degree of parallelism for a workload group. ]
    RequestMaximumCpuTimeInSeconds (System.Int32) [Gets or sets the request maximum cpu time in seconds for a workload group. ]
    RequestMaximumMemoryGrantPercentage (System.Int32) [Gets or sets the maximum memory grant percentage for a workload group. ]
    RequestMemoryGrantTimeoutInSeconds (System.Int32) [Gets or sets the request memory grant timeout in seconds for a workload group. ]
    Name (System.String) [Gets or sets the name of the object.(inherited from NamedSmoObject) ]

Xml Schema Collection (XmlSchemaCollection)
Description:Exposes properties of the XmlSchemaCollection object.
Evaluated by:CheckOnSchedule
TargetTypes are:XmlSchemaCollection

Properties are:
    CreateDate (System.DateTime) [Gets the date and time when the XML schema collection was created.                ]
    DateLastModified (System.DateTime) [Gets the date and time when the XML schema collection was last modified.                ]
    ID (System.Int32) [Gets the ID value that uniquely identifies the XML schema collection.       ]
    Text (System.String) [Gets or sets the text that defines all of the schemas in the XML schema collection.       ]
    Schema (System.String) [Gets or sets the schema.(inherited from ScriptSchemaObjectBase)              ]
    Name (System.String) [Gets or sets the name of the object.(inherited from NamedSmoObject) ]

 

-Jens

SQL Server 2008 SP1 CU1 is out

For those waiting to update their CU4 fixed SQL Server 2008 server to upgrade to SP1 as they not wanted to loose the CU4 fixes, here is the most recent fix for SQL Server 2008 SP1. This version is CU1 FOR SP1. So you will have to install SP1 before applying CU1 (for SP1).


http://support.microsoft.com/kb/969099/en-us

 

-Jens

SQL Server 2008 SP1 + CU1 or CU4 or what ?

I saw some confusion around the availability and difference of SP1 and CU4 on the web, therefore decided to put on a blog post for clarifying this.

If you compare the contents of CU4 (RTM) and SP1 for SQL Server 2008, you will notice that some patches are not available in SP1. That means that if you already installed CU4 and apply SP1 that you will lose the patches of CU4 that are not in SP1 (some of them did not make it to the RTM of SP1). The near future will bring you CU1 (for SP1) which will include all CU4 fixes as well as additional (post-SP1 fixes).

 

The Service pack (SQL Server2008 SP1) can be download here: Download details- SQL Server 2008 SP1

The CU4 package can be downloaded here: http://support.microsoft.com/kb/968369 

 

BTW, for those making their rollout easier, SQL Server 2008 SP1 now introduces slipstream-ing:

http://blogs.msdn.com/petersad/archive/2009/02/25/sql-server-2008-creating-a-merged-slisptream-drop.aspx.

 

If you want the whole story and the details, there is a good blog post from PSS about the CU and SP story:

http://blogs.msdn.com/psssql/archive/2009/04/09/sql-server-2008-sp1-and-cumulative-updates-explained.aspx

 

UPDATE: The most recent SQL Server SP1 CU1 is released which solves the confusion as it includes the CU4 fixes. –> SQL Server 2008 SP1 CU1 is out

 

-Jens

When is random “random enough” ?

An interesting question came up in a private conversation. If you want to pick a random value from a random generated result set and want to make sure that the row is really random, is the known ORDER BY NEWID() really random enough ? The point is that once you have one value and knowing the algorithm you could calculate the next value derived from the first value. So, what could you do to make this even more random ? To state something upfront, making it harder to guess the right value will have to be paid by extra computing cycles. No matter which way you choose, you will have to make sure to find the best way (in terms of computing investment and grade of randomness).

One possible solution is the following:

  • Generate two different NewId()s, order by these and generate a RowNumber from both of them
  • Afterwards join on the RowNumbers (as the highest values are the same) and pick one the value from the Joined result set order by another unique value.
  • If that is not random enough, you could create another RowNumber from another NewId() and join this to the second RowNumber and so on…. (Depending on the grade of paranoia :-)

A sample could be something like the following:

 

 

DROP TABLE dbo.Participant

GO

CREATE TABLE dbo.Participant
(
    participantId INT,
    FirstName VARCHAR(255),
    LastName VARCHAR(255),
    Speciality VARCHAR(MAX)
)

GO

INSERT INTO dbo.Participant 
VALUES 
    (1,'Luke', 'Skywalker', 'The force is strong with him') ,
    (2,'Hang', 'Solo', 'Made the Kessel run in less than 12 parsecs (But isn´t that a unit of distance and not time ?!)'),
    (3, 'Chewbacca', 'n/a', 'Doing something like R-R-R-R-R all the time') 


WITH ParticipantCTE(participantId,RowNumber1,RowNumber2,ThedeterministicGuid)
AS
(
    SELECT 
        ParticipantId,
        ROW_NUMBER() OVER (ORDER BY NEWID()) AS RowNumber1, 
        ROW_NUMBER() OVER (ORDER BY NEWID()) AS RowNumber2,
        NEWID() AS ThedeterministicGuid
    FROM dbo.Participant
)
SELECT TOP(1) P.ParticipantId
FROM dbo.Participant P
INNER JOIN ParticipantCTE N2
ON N2.participantId = P.participantId
INNER JOIN ParticipantCTE N1
ON N1.RowNumber1 = N2.RowNumber2
Order by N2.ThedeterministicGuid


/*

A sample run with 100000 iterations showed that is will be evenly dispersed.

ParticipantId Counted
------------- -----------
1             33712
2             33226
3             33062
*/

-Jens

Who2 wants to process sp_who2 ?

SP_who2 has become a very handy tool for administrator, DBAs developers or all who are the All-In-One role) to get information from the processes table and get the appropriate information by just issuing this command form the command line. Easy if you have <100 connections and go simply through the data by scrolling and getting the appropriate information with a quick view, but tedious for those having hundreds of connections which come for different applications, hostnames, database names etc.

If you already got familiar with the concepts of the dynamic management views (DMVs and DMFs) you might recognize some of the information from the relevant runtime views like

  • sys.dm_exec_sessions
  • sys.dm_exec_requests
  • sys.dm_exec_sql_text(sql_handle)

So making it easy for you moving away from the sp_who2 to the “new” features (Yes, I know that they are around since 2005, but I saw many people not being aware of this incredible insight in the engine), I created a hybrid solution which should make it easy for you to change your way of querying this data and give you a good start for getting your feet wet.

I really encourage you to use this DMV to discover information you might not yet have insights to.

-Jens

PS: Also have a look at the *drumm roll* DMV - All stars form Jimmy May (he has a blog!)

Checking Failover after setting up a Database Mirroring

If you use database mirroring, the essence is that you use an additional connection property which is called “Failover partner” to make the client aware that it can try to connect to another server. If the principal went down or you lost connection to the server you will get the error message

A transport-level error has occurred when sending the request to the server. (provider: Shared Memory Provider, error: 0 - No process is on the other end of the pipe.)


So there is no real “transparent” redirection to the mirror (which becomes the principal if the former principal will be down), you will have to reconnect to your failover partner. Make sure that you will have to implement this in your client application.

As part of the SQL Server Master class, I did a small application (which you can download in this blog entry) doing a check and display for the information if and when a failover happened on the server and how long the failover took. It might make it easy for you to check you environment for automatic failovers for database mirroring testing.

If you have any feedback or things to change, feel free to ping me.

CheckFailover

-Jens

More Posts Next page »
Page view tracker