Création, modification et suppression de règles

Dans SMO, les règles sont représentées par l'objet Rule. La règle est définie par la propriété TextBody, qui est une chaîne de texte contenant une expression de condition qui utilise des opérateurs ou des prédicats, par exemple IN, LIKE ou BETWEEN. Elle ne peut pas faire référence à des colonnes ou à d'autres objets de base de données. Vous pouvez y inclure des fonctions intégrées qui ne font pas référence à des objets de base de données.

La définition dans la propriété TextBody doit contenir une variable qui fait référence à la valeur de données entrée. Vous pouvez utiliser n'importe quel nom ou symbole pour représenter la valeur lors de la création de la règle, mais le premier caractère doit être le symbole @.

Exemple

Pour utiliser un exemple de code fourni, vous devez sélectionner l'environnement, le modèle et le langage de programmation à utiliser pour créer votre application. Pour plus d'informations, consultez Procédure : créer un projet SMO Visual Basic dans Visual Studio .NET ou Procédure : créer un projet SMO Visual C# dans Visual Studio .NET.

Création, modification et suppression d'une règle en Visual Basic

Cet exemple de code montre comment créer une règle, l'attacher à une colonne, modifier des propriétés de l'objet Rule, la détacher de la colonne, puis la supprimer.

L'instruction Dim pour l'objet Rule est spécifiée avec le chemin d'accès complet de l'assembly pour éviter toute ambiguïté avec un objet Rule de l'assembly System.Data.

'Connect to the local, default instance of SQL Server.
Dim srv As Server
srv = New Server
'Reference the AdventureWorks2008R2 database.
Dim db As Database
db = srv.Databases("AdventureWorks2008R2")
'Declare a Table object variable and reference the Product table.
Dim tb As Table
tb = db.Tables("Product", "Production")
'Define a Rule object variable by supplying the parent database, name and schema in the constructor. 
'Note that the full namespace must be given for the Rule type to differentiate it from other Rule types.
Dim ru As Microsoft.SqlServer.Management.Smo.Rule
ru = New Rule(db, "TestRule", "Production")
'Set the TextHeader and TextBody properties to define the rule.
ru.TextHeader = "CREATE RULE [Production].[TestRule] AS"
ru.TextBody = "@value BETWEEN GETDATE() AND DATEADD(year,4,GETDATE())"
'Create the rule on the instance of SQL Server.
ru.Create()
'Bind the rule to a column in the Product table by supplying the table, schema, and 
'column as arguments in the BindToColumn method.
ru.BindToColumn("Product", "SellEndDate", "Production")
'Unbind from the column before removing the rule from the database.
ru.UnbindFromColumn("Product", "SellEndDate", "Production")
ru.Drop()

Création, modification et suppression d'une règle en Visual C#

Cet exemple de code montre comment créer une règle, l'attacher à une colonne, modifier des propriétés de l'objet Rule, la détacher de la colonne, puis la supprimer.

L'instruction Dim pour l'objet Rule est spécifiée avec le chemin d'accès complet de l'assembly pour éviter toute ambiguïté avec un objet Rule de l'assembly System.Data.

{
            //Connect to the local, default instance of SQL Server. 
            Server srv;
            srv = new Server();
            //Reference the AdventureWorks2008R2 database. 
            Database db;
            db = srv.Databases["AdventureWorks2008R2"];
        
            //Define a Rule object variable by supplying the parent database, name and schema in the constructor. 
            //Note that the full namespace must be given for the Rule type to differentiate it from other Rule types. 
            Microsoft.SqlServer.Management.Smo.Rule ru;
            ru = new Rule(db, "TestRule", "Production");
            //Set the TextHeader and TextBody properties to define the rule. 
            ru.TextHeader = "CREATE RULE [Production].[TestRule] AS";
            ru.TextBody = "@value BETWEEN GETDATE() AND DATEADD(year,4,GETDATE())";
            //Create the rule on the instance of SQL Server. 
            ru.Create();
            //Bind the rule to a column in the Product table by supplying the table, schema, and 
            //column as arguments in the BindToColumn method. 
            ru.BindToColumn("Product", "SellEndDate", "Production");
            //Unbind from the column before removing the rule from the database. 
            ru.UnbindFromColumn("Product", "SellEndDate", "Production");
            ru.Drop();


        }

Création, modification et suppression d'une règle dans PowerShell

Cet exemple de code montre comment créer une règle, l'attacher à une colonne, modifier des propriétés de l'objet Rule, la détacher de la colonne, puis la supprimer.

L'instruction Dim pour l'objet Rule est spécifiée avec le chemin d'accès complet de l'assembly pour éviter toute ambiguïté avec un objet Rule de l'assembly System.Data.

# Set the path context to the local, default instance of SQL Server and get a reference to AdventureWorks2008R2
CD \sql\localhost\default\databases
$db = get-item Adventureworks2008R2

# Define a Rule object variable by supplying the parent database, name and schema in the constructor. 
$ru = New-Object -TypeName Microsoft.SqlServer.Management.SMO.Rule `
-argumentlist $db, "TestRule", "Production"

#Set the TextHeader and TextBody properties to define the rule. 
$ru.TextHeader = "CREATE RULE [Production].[TestRule] AS"
$ru.TextBody = "@value BETWEEN GETDATE() AND DATEADD(year,4,GETDATE())"

#Create the rule on the instance of SQL Server. 
$ru.Create()

# Bind the rule to a column in the Product table by supplying the table, schema, and 
# column as arguments in the BindToColumn method. 
$ru.BindToColumn("Product", "SellEndDate", "Production")

#Unbind from the column before removing the rule from the database. 
$ru.UnbindFromColumn("Product", "SellEndDate", "Production")
$ru.Drop()

Voir aussi

Référence