In this article, you will see how to create a duplicate table with a new name using a script in SQL Server. Suppose you have a table with 40 fields and you want to create a table with the same structure but a new name. If you create a new empty table then it will take extra time to define all the fields again. So instead we create a script of the table and replace the table name with the new name from the table script which creates a new table with the same column names, data types, and nullable settings. So let's take a look at a practical example of how to create a script in SQL Server. The example is developed in SQL Server 2012 using the SQL Server Management Studio.
- CREATE TABLE [dbo].[UserDetail]
- (
- [User_Id] [int] NOT NULL,
- [FirstName] [varchar](255) NULL,
- [LastName] [varchar](255) NOT NULL,
- [Address] [varchar](255) NULL
- )
Now insert data into the table. The table will look as in the following:

Creating Table Script in SQL Server Management Studio
Now Press F8 to open the Object Browser in SQL Server Management Studio and expand it.
Database -> Table then right-click then select Script Table as -> Create to -> New Query Editor Window.

- USE [master]
- GO
- SET ANSI_NULLS ON
- GO
- SET QUOTED_IDENTIFIER ON
- GO
- SET ANSI_PADDING ON
- GO
- CREATE TABLE [dbo].[UserDetail](
- [User_Id] [int] NOT NULL,
- [FirstName] [varchar](255) NULL,
- [LastName] [varchar](255) NOT NULL,
- [Address] [varchar](255) NULL
- ) ON [PRIMARY]
- GO
- SET ANSI_PADDING OFF
- GO
Now change the name of the table in the script to whatever you want the new table to be named.
- USE [master]
- GO
- SET ANSI_NULLS ON
- GO
- SET QUOTED_IDENTIFIER ON
- GO
- SET ANSI_PADDING ON
- GO
- CREATE TABLE [dbo].[UserDetailRecreate] -- Changing the name of the above table
- (
- [User_Id] [int] NOT NULL,
- [FirstName] [varchar](255) NULL,
- [LastName] [varchar](255) NOT NULL,
- [Address] [varchar](255) NULL
- ) ON [PRIMARY]
- GO
- SET ANSI_PADDING OFF
- GO
Now refresh the Master database and expand it to see the new table in the Object Explorer.
Create a Duplicate Table with New Name from Existing table programmatically
- SELECT *
- INTO [UserDetailRecreate]
- FROM [UserDetail]
- WHERE 1 = 2
Here, 1=2 will prevent the data from being copied from UserDetailto the UserDetailRecreate table.

Gowtham RajamanickamPosted Apr 26, 2016, 3:07 AM
good article
vivek upadhyayPosted Jan 24, 2014, 7:17 AM
thanks sir
Rohatash KumarPosted Oct 29, 2012, 11:02 PM
Thanks. Middha
Deepak MiddhaPosted Oct 29, 2012, 6:24 AM
Nice Article Sir.