MSSQL程式設計筆記六 表的完整複製

2022-02-17 17:07:17 字數 1689 閱讀 7416

如果直接
select * into 目的資料庫名.dbo.目的表名 from 原表名
複製的話,可以完整的複製表,但是有乙個缺陷就是,表的主鍵和索引沒了。
想要完整複製一張表,可以在sql server如下操作:
1.使用查詢分析器或企業管理器生成要複製表的較完整的指令碼。所謂完整,要在指令碼選項中設定包括約束、自增加等所需指令碼。

2.複製指令碼到儲存過程或查詢分析器,更改表名和約束名為新錶名和約束名。

3.執行指令碼。

4.使用insert into newtablename select * from oldtablename 將資料新增到新錶.

一般指令碼生成如下:
if

exists (select

*from dbo.sysobjects where id =

object_id(n'

[dbo].[pwr_reading_daily_analysis]

') and

objectproperty(id, n'

isusertable

') =

1)drop

table

[dbo

].[pwr_reading_daily_analysis]go

create

table

[dbo

].[pwr_reading_daily_analysis

] ([

fread_date][

datetime

]not

null ,

[fptc_id][

int]

notnull ,

[ftype][

char

] (10) collate sql_latin1_general_cp1_ci_as null ,

[farea_count][

int]

null ,

[fconcentrator_count][

int]

null ,

[fmeter_count][

int]

null ,

[fcollector_count][

int]

null ,

[fresident_count][

int]

null ,

[fbroken_meter_count][

int]

null ,

[fstop_meter_count][

int]

null ,

[freading_count][

int]

null ,

[fnoreading_count][

int]

null ,

[freading_count_percent][

money

]null

) on

[primary]go

create

index

[ix_pwr_reading_daily_analysis]on

[dbo

].[pwr_reading_daily_analysis

]([fptc_id

]) with

fillfactor=90

on[primary]go

Mysql中資料表的完整複製

將 production 資料庫中的 mytbl 表快速複製為 mytbl new,2個命令如下 1 2create table mytbl new like production.mytbl insert mytbl new select from production.mytbl 第乙個命令是建...

MSSQL程式設計筆記二 表的連線查詢

1 inner join left join right join 之間的關係 inner join 只要在這兩個表的公共字段之中有相符值,內部聯接將組合兩個表中的記錄。注意 在乙個 inner join 之中,可以巢狀 left join 或 right join,但是在 left join 或 ...

SQL21日自學通筆記六 表的聯合

表的聯合包含 執行外部聯合 執行內部聯合 執行左聯合 執行右聯合 進行等值聯合 進行不等值聯合 1.兩表聯合。比如 select from table1,table2 如果table1有14行記錄,table2有6行,那麼兩表聯合記錄有14 6 84 2.等值聯合。比如 select from ta...