复制表结构,与源表结构相等,包括主键和索引
来源:互联网 发布:matlab和java 编辑:程序博客网 时间:2024/06/05 20:10
--只复制表结构,与源表结构相等,包括主键和索引,
--只可惜只能复制一个主键
--改数据库名,table1 改为旧表,table2改为新表,今天研究了下怎么完全复制一个表,包括表结构,主键和索引。下面是SQL,
--注:两个表在一个库中。这段script可以重复跑
--SELECT * INTO ou_issues_msg_detail FROM Ou_Issues_Msg_Detail_bak
--SELECT * FROM Ou_Issues_Msg_Detail
use DC --DBName
declare @sourceTable as varchar(20)
set @sourceTable = 'it_user' --source table name
declare @destTable as varchar(20)
set @destTable = 'it_user_bak' --destination table name
--select * from dbo.sysobjects where id = object_id('it_user_bak') and OBJECTPROPERTY(id, N'IsUserTable') = 1
if exists (select * from dbo.sysobjects where id = object_id(@destTable) and OBJECTPROPERTY(id, N'IsUserTable') = 1)
exec('drop table '+@destTable)
--Get sql for adding PK 添加主键
declare @sql_PK as varchar(1000)
--Create a temp table to store PK info.创建临时表存储主键信息
create table #TempKeys(
dbName varchar(50),
tableOwner varchar(50),
tableName varchar(50),
columnName varchar(50),
keySeq int,
pkName varchar(50)
)
--insert #TempKeys exec sp_pkeys 'it_user'
--SELECT * FROM #TempKeys
--select * from it_user_bak
--ALTER TABLE it_user_bak ADD PRIMARY KEY (within_code,code) from #TempKeys
--下面语句查出主键within_code,code
--exec sp_pkeys 'it_user'
insert #TempKeys exec sp_pkeys @sourceTable
select @sql_PK = 'ALTER TABLE '+@destTable+' ADD PRIMARY KEY('+columnName+')' from #TempKeys
--Get sql for adding Indexes
declare @sql_IDX as varchar(1000)
--Create a temp table to store Indexes info.
create table #TempIDXs(
idxName varchar(50),
idxDesc varchar(50),
indexKeys varchar(50),
)
insert #TempIDXs exec sp_helpindex @sourceTable
select @sql_IDX =
(select 'CREATE INDEX [idx_'+@destTable+'_'+replace(replace(indexKeys,',',''),' ','')+'] ON'+@destTable+' ('+indexKeys+');' from #TempIDXs
where idxName not in (select pkName from #TempKeys) for xml path('')
)
drop table #TempIDXs
drop table #TempKeys
--create a new table with the same schema as source table 复制结构不复制数据
exec('select top 0 * into '+@destTable +' from '+@sourceTable)
exec (@sql_PK)
exec (@sql_IDX)
- 复制表结构,与源表结构相等,包括主键和索引
- mysql如何复制表结构,包括主键,索引等等
- 通过查询sybase的系统字典表对表结构进行复制(包括表的主键和索引)
- sql server 2005 查询主键和索引、表结构
- 如何创建一个与已知的一个表完全相同结构的新表(包括主键、外键、索引),同时将数据导入新表
- 索引和表结构
- oracle 复制表与复制表结构
- Mysql复制表结构、表数据以及修改主键
- 复制表的结构,数据,主键及外键!!
- 复制含主键的表结构的SQL
- Innodb 表和索引结构
- mysql数据库性能优化(包括SQL,表结构,索引,缓存)
- mysql数据库性能优化(包括SQL,表结构,索引,缓存)
- oracle中查看当前用户的表结构、主键、索引
- 表数据复制和结构复制
- 线性表包括顺序存储结构和链式存储结构
- 复制表(结构,结构+数据)
- 完整的复制一张表(结构,索引,数据)
- IOS沙盒(sandbox)机制和文件操作(一)
- 生活的态度
- Wince程序获得当前路径(C#)
- 管道(pipe)
- input子系统学习笔记五 按键驱动实例分析上
- 复制表结构,与源表结构相等,包括主键和索引
- IOS沙盒(sandbox)机制和文件操作(二)
- linux 创建连接命令 ln -s 软链接
- 记win7下 硬盘安装ubuntu11.04
- QT中Dialog显示最大化最小化按钮
- input子系统学习笔记六 按键驱动实例分析下
- DELETE与TRUNCATE的区别
- 进程操作-怎样查杀进程?
- ASCII码表