SqlServer複製一個表的數據到另一個表大體上分兩種情況,第一種情況是目標表當前不存在的情況,下面代碼中將TPerson表數據複製到TNew表中,TNew表當前不存在。
using System;
using System.Collections.Generic;
using System.Data;
using System.Data.SqlClient;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace ConsoleApplication1
{
class Program
{
static string ConnectionString = @"Data Source=(localdb)\Projects;Initial Catalog=DbTest;Integrated Security=True;Connect Timeout=30;Encrypt=False;TrustServerCertificate=False";
static void Main(string[] args)
{
using (SqlConnection connection = new SqlConnection(ConnectionString))
{
SqlCommand command = new SqlCommand();
command.Connection = connection;
command.CommandText = "select * into [TNew] from [TPerson]";
try
{
connection.Open();
command.ExecuteNonQuery();
Console.WriteLine("複製表成功");
}
catch
{
Console.WriteLine("複製表失敗");
}
}
Console.ReadKey(true);
}
}
}
第二種情況是目標表當前已經存在,此時又需要分兩種情況,第一種情況:TPerson表的主鍵爲自增Id,此時只能選擇非主鍵列進行復制,代碼如下:
using System;
using System.Collections.Generic;
using System.Data;
using System.Data.SqlClient;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace ConsoleApplication1
{
class Program
{
static string ConnectionString = @"Data Source=(localdb)\Projects;Initial Catalog=DbTest;Integrated Security=True;Connect Timeout=30;Encrypt=False;TrustServerCertificate=False";
static void Main(string[] args)
{
using (SqlConnection connection = new SqlConnection(ConnectionString))
{
SqlCommand command = new SqlCommand();
command.Connection = connection;
command.CommandText = "insert into [TNew] select Name,Gender from [TPerson]";
try
{
connection.Open();
command.ExecuteNonQuery();
Console.WriteLine("複製表成功");
}
catch
{
Console.WriteLine("複製表失敗");
}
}
Console.ReadKey(true);
}
}
}
第二種情況:TPerson表主鍵爲非自增Id,此時可選擇全部列進行復制,代碼如下:
using System;
using System.Collections.Generic;
using System.Data;
using System.Data.SqlClient;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace ConsoleApplication1
{
class Program
{
static string ConnectionString = @"Data Source=(localdb)\Projects;Initial Catalog=DbTest;Integrated Security=True;Connect Timeout=30;Encrypt=False;TrustServerCertificate=False";
static void Main(string[] args)
{
using (SqlConnection connection = new SqlConnection(ConnectionString))
{
SqlCommand command = new SqlCommand();
command.Connection = connection;
command.CommandText = "insert into [TNew] select * from [TPerson]";
try
{
connection.Open();
command.ExecuteNonQuery();
Console.WriteLine("複製表成功");
}
catch
{
Console.WriteLine("複製表失敗");
}
}
Console.ReadKey(true);
}
}
}