Création, modification et suppression des valeurs par défaut
Dans SMO (SQL Server Management Objects), la contrainte par défaut est représentée par l'objet Default.
La propriété TextBody de l'objet Default est utilisée pour définir la valeur à insérer. Il peut s'agir d'une constante ou d'une instruction Transact-SQL qui retourne une valeur constante, telle que GETDATE(). La propriété TextBody ne peut pas être modifiée en utilisant la méthode Alter. L'objet Default doit d'abord être supprimé, puis recréé.
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 valeur par défaut en Visual Basic
Cet exemple de code montre comment créer une valeur par défaut qui est du texte simple et une autre valeur par défaut qui est une instruction Transact-SQL. La valeur par défaut doit être attachée à la colonne à l'aide de la méthode BindToColumn, puis détachée à l'aide de la méthode UnbindFromColumn.
'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")
'Define a Default object variable by supplying the parent database and the default name
'in the constructor.
Dim def As [Default]
def = New [Default](db, "Test_Default2")
'Set the TextHeader and TextBody properties that define the default.
def.TextHeader = "CREATE DEFAULT [Test_Default2] AS"
def.TextBody = "GetDate()"
'Create the default on the instance of SQL Server.
def.Create()
'Declare a Column object variable and reference a column in the AdventureWorks2008R2 database.
Dim col As Column
col = db.Tables("SpecialOffer", "Sales").Columns("StartDate")
'Bind the default to the column.
def.BindToColumn("SpecialOffer", "StartDate", "Sales")
'Unbind the default from the column and remove it from the database.
def.UnbindFromColumn("SpecialOffer", "StartDate", "Sales")
def.Drop()
Création, modification et suppression d'une valeur par défaut en Visual C#
Cet exemple de code montre comment créer une valeur par défaut qui est du texte simple et une autre valeur par défaut qui est une instruction Transact-SQL. La valeur par défaut doit être attachée à la colonne à l'aide de la méthode BindToColumn, puis détachée à l'aide de la méthode UnbindFromColumn.
{
Server srv = new Server();
//Reference the AdventureWorks2008R2 database.
Database db = srv.Databases["AdventureWorks2008R2"];
//Define a Default object variable by supplying the parent database and the default name
//in the constructor.
Default def = new Default(db, "Test_Default2");
//Set the TextHeader and TextBody properties that define the default.
def.TextHeader = "CREATE DEFAULT [Test_Default2] AS";
def.TextBody = "GetDate()";
//Create the default on the instance of SQL Server.
def.Create();
//Bind the default to a column in a table in AdventureWorks2008R2
def.BindToColumn("SpecialOffer", "StartDate", "Sales");
//Unbind the default from the column and remove it from the database.
def.UnbindFromColumn("SpecialOffer", "StartDate", "Sales");
def.Drop();
}
Création, modification et suppression d'une valeur par défaut dans PowerShell
Cet exemple de code montre comment créer une valeur par défaut qui est du texte simple et une autre valeur par défaut qui est une instruction Transact-SQL. La valeur par défaut doit être attachée à la colonne à l'aide de la méthode BindToColumn, puis détachée à l'aide de la méthode UnbindFromColumn.
# 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 Default object variable by supplying the parent database and the default name in the constructor.
$def = New-Object -TypeName Microsoft.SqlServer.Management.SMO.Default `
-argumentlist $db, "Test_Default2"
#Set the TextHeader and TextBody properties that define the default.
$def.TextHeader = "CREATE DEFAULT [Test_Default2] AS"
$def.TextBody = "GetDate()"
#Create the default on the instance of SQL Server.
$def.Create()
#Bind the default to the column.
$def.BindToColumn("SpecialOffer", "StartDate", "Sales")
#Unbind the default from the column and remove it from the database.
$def.UnbindFromColumn("SpecialOffer", "StartDate", "Sales")
$def.Drop()