--- title: "Creating, Altering, and Removing Tables" ms.custom: seo-dt-2019 ms.date: "08/06/2017" ms.prod: sql ms.prod_service: "database-engine" ms.reviewer: "" ms.technology: ms.topic: "reference" helpviewer_keywords: - "tables [SMO]" ms.assetid: ff0bcfff-812f-4999-b0c7-736a97804c2b author: "markingmyname" ms.author: "maghan" monikerRange: "=azuresqldb-current||=azure-sqldw-latest||>=sql-server-2016||=sqlallproducts-allversions||>=sql-server-linux-2017||=azuresqldb-mi-current" --- # Creating, Altering, and Removing Tables [!INCLUDE[appliesto-ss-asdb-asdw-xxx-md](../../../includes/appliesto-ss-asdb-asdw-xxx-md.md)] In [!INCLUDE[ssNoVersion](../../../includes/ssnoversion-md.md)] Management Objects (SMO), tables are represented by the object. In the SMO object hierarchy, the object is below the object. ## Example To use any code example that is provided, you have to choose the programming environment, template, and language in which to create your application. For more information, see [Create a Visual C# SMO Project in Visual Studio .NET](../../../relational-databases/server-management-objects-smo/how-to-create-a-visual-csharp-smo-project-in-visual-studio-net.md). ## Creating, Altering, and Removing a Table in Visual Basic This code example creates a table that has several columns with different types and purposes. The code also provides examples of how to create an identity field, how to create a primary key, and how to alter table properties. ```VBNET 'Connect to the local, default instance of SQL Server. Dim srv As Server srv = New Server 'Reference the AdventureWorks2012 2008R2 database. Dim db As Database db = srv.Databases("AdventureWorks2012") 'Define a Table object variable by supplying the parent database and table name in the constructor. Dim tb As Table tb = New Table(db, "Test_Table") 'Add various columns to the table. Dim col1 As Column col1 = New Column(tb, "Name", DataType.NChar(50)) col1.Collation = "Latin1_General_CI_AS" col1.Nullable = True tb.Columns.Add(col1) Dim col2 As Column col2 = New Column(tb, "ID", DataType.Int) col2.Identity = True col2.IdentitySeed = 1 col2.IdentityIncrement = 1 tb.Columns.Add(col2) Dim col3 As Column col3 = New Column(tb, "Value", DataType.Real) tb.Columns.Add(col3) Dim col4 As Column col4 = New Column(tb, "Date", DataType.DateTime) col4.Nullable = False tb.Columns.Add(col4) 'Create the table on the instance of SQL Server. tb.Create() 'Add another column. Dim col5 As Column col5 = New Column(tb, "ExpiryDate", DataType.DateTime) col5.Nullable = False tb.Columns.Add(col5) 'Run the Alter method to make the change on the instance of SQL Server. tb.Alter() 'Remove the table from the database. tb.Drop() ``` ## Creating, Altering, and Removing a Table in Visual C# This code example creates a table that has several columns with different types and purposes. The code also provides examples of how to create an identity field, how to create a primary key, and how to alter table properties. ```csharp { //Connect to the local, default instance of SQL Server. Server srv; srv = new Server(); //Reference the AdventureWorks2012 database. Database db; db = srv.Databases["AdventureWorks2012"]; //Define a Table object variable by supplying the parent database and table name in the constructor. Table tb; tb = new Table(db, "Test_Table"); //Add various columns to the table. Column col1; col1 = new Column(tb, "Name", DataType.NChar(50)); col1.Collation = "Latin1_General_CI_AS"; col1.Nullable = true; tb.Columns.Add(col1); Column col2; col2 = new Column(tb, "ID", DataType.Int); col2.Identity = true; col2.IdentitySeed = 1; col2.IdentityIncrement = 1; tb.Columns.Add(col2); Column col3; col3 = new Column(tb, "Value", DataType.Real); tb.Columns.Add(col3); Column col4; col4 = new Column(tb, "Date", DataType.DateTime); col4.Nullable = false; tb.Columns.Add(col4); //Create the table on the instance of SQL Server. tb.Create(); //Add another column. Column col5; col5 = new Column(tb, "ExpiryDate", DataType.DateTime); col5.Nullable = false; tb.Columns.Add(col5); //Run the Alter method to make the change on the instance of SQL Server. tb.Alter(); //Remove the table from the database. tb.Drop(); } ``` ## Creating, Altering, and Removing a Table in PowerShell This code example creates a table that has several columns with different types and purposes. The code also provides examples of how to create an identity field, how to create a primary key, and how to alter table properties. ```powershell #Load the assembly containing the objects used in this example [reflection.assembly]::LoadWithPartialName("Microsoft.SqlServer.Types") # Set the path context to the local, default instance of SQL Server. CD \sql\localhost\default\Databases\ #And the database object corresponding to AdventureWorks2012. $db = get-item AdventureWorks2012 #Create a SMO Table $tb = New-Object -TypeName Microsoft.SqlServer.Management.SMO.Table -argumentlist $db, "Test_Table" #Add various columns to the table. $Type = [Microsoft.SqlServer.Management.SMO.DataType]::NChar(50) $col1 = New-Object -TypeName Microsoft.SqlServer.Management.SMO.Column -argumentlist $tb,"Name", $Type $col1.Collation = "Latin1_General_CI_AS" $col1.Nullable = $true $tb.Columns.Add($col1) $Type = [Microsoft.SqlServer.Management.SMO.DataType]::Int $col2 = New-Object -TypeName Microsoft.SqlServer.Management.SMO.Column -argumentlist $tb,"ID", $Type $col2.Identity = $true $col2.IdentitySeed = 1 $col2.IdentityIncrement = 1 $tb.Columns.Add($col2) $Type = [Microsoft.SqlServer.Management.SMO.DataType]::Real $col3 = New-Object -TypeName Microsoft.SqlServer.Management.SMO.Column -argumentlist $tb,"Value", $Type $tb.Columns.Add($col3) $Type = [Microsoft.SqlServer.Management.SMO.DataType]::DateTime $col4 = New-Object -TypeName Microsoft.SqlServer.Management.SMO.Column -argumentlist $tb,"Date", $Type $col4.Nullable = $false $tb.Columns.Add($col4) #Create the table $tb.Create() $Type = [Microsoft.SqlServer.Management.SMO.DataType]::DateTime $col5 = New-Object -TypeName Microsoft.SqlServer.Management.SMO.Column -argumentlist $tb,"ExpiryDate", $Type $col5.Nullable = $false $tb.Columns.Add($col5) #Run the Alter method to make the change on the instance of SQL Server. $tb.Alter() #Remove the table from the database. $tb.Drop() ``` ## See Also