In SQL Server, you can create a new table from an existing table using the SELECT INTO
statement or the CREATE TABLE
statement combined with an INSERT INTO
query. Here's how each method works:
1. Using SELECT INTO
to Create a New Table from Another Table
The SELECT INTO
statement creates a new table based on the result of a SELECT
query. The new table will have the same structure (columns and their data types) as the original table, and it will contain the data selected by the query.
Syntax:
SELECT *
INTO NewTable
FROM ExistingTable
WHERE condition; -- Optional
Example:
SELECT *
INTO EmployeesCopy
FROM Employees
WHERE Department = 'Sales';
In this example:
- A new table called
EmployeesCopy
is created. - It will have the same structure as the
Employees
table. - It will contain only rows where the
Department
is 'Sales'.
Key Points:
- The new table (
EmployeesCopy
) is created with the same columns as the original (Employees
), but no indexes, constraints, or primary keys from the original table will be copied. - If you don't specify a
WHERE
clause, all rows from theExistingTable
are copied.
2. Using CREATE TABLE
and INSERT INTO
to Create and Populate a New Table
Alternatively, you can first create a new empty table using CREATE TABLE
, and then insert data from the original table using INSERT INTO
.
Syntax:
CREATE TABLE NewTable (
Column1 DataType,
Column2 DataType,
...
);
INSERT INTO NewTable
SELECT Column1, Column2, ...
FROM ExistingTable
WHERE condition; -- Optional
Example:
CREATE TABLE EmployeesCopy (
EmployeeID INT,
FirstName VARCHAR(50),
LastName VARCHAR(50),
Department VARCHAR(50)
);
INSERT INTO EmployeesCopy (EmployeeID, FirstName, LastName, Department)
SELECT EmployeeID, FirstName, LastName, Department
FROM Employees
WHERE Department = 'Sales';
In this example:
- A new table
EmployeesCopy
is created with the specified columns. - The data from the
Employees
table, filtered by theWHERE
clause, is inserted into the new table.
Key Points:
- The
CREATE TABLE
statement gives you more control over the table's structure, such as setting data types, constraints, and indexes. - This method requires you to explicitly define the structure of the new table before inserting data.
Summary:
SELECT INTO
: Quick and simple for creating a new table with the same structure as an existing one (without constraints or indexes).CREATE TABLE
+INSERT INTO
: More control over the table's structure and allows you to create a new table with custom constraints, data types, etc., and then populate it with data from an existing table.
Each approach has its use case depending on whether you want a quick copy or more control over the new table's structure.
No comments:
Post a Comment