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 devrez sélectionner l'environnement, le modèle et le langage de programmation dans lequel créer votre application. Pour plus d'informations, consultez Créer un projet SMO Visual Basic dans Visual Studio .NET ou 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 AdventureWorks2012 database.
Dim db As Database
db = srv.Databases("AdventureWorks2012")
'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 AdventureWorks2012 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 AdventureWorks2012 database.
Database db = srv.Databases["AdventureWorks2012"];
//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 AdventureWorks2012
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 AdventureWorks2012
CD \sql\localhost\default\databases
$db = get-item Adventureworks2012
#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()