您正在使用 IPV4 [34.204.198.73] 访问本站,您本次已经查看了 1 页
用户名: 密 码: 验证码:     用QQ登录本站
首页 软件 编程 笑话 知识 公告 台风 日历 计算器
悟空收录网       [公益]保护绿色环境,构建和谐社会      

【腾讯云】2核2G4M云服务器新老同享99元/年,续费同价      
[公益] 地球是我家,绿化靠大家      
2024年 七夕节 025
2025年 高 考 326
2025年 元 旦 169
2025年 春 节 197
 
您现在的位置:首页 >> 数据库 >> 内容
本类新增
本类热门
根据sql脚本修改数据库表结构的几种解决方案
内容摘要: 相关SQL语句如下:修改表名:EXECsp_rename'oldName','newName'插入数据:insertintonewTable(column1,column2,.....)selectcolumn1,column2,.....fromoldTable更多相关操作:参考数据库、表、列的重命名列出参考内容来方便查看一、更改数据库名代码如下:sp_r......
相关SQL语句如下:

修改表名:EXECsp_rename'oldName','newName'

插入数据:insertintonewTable(column1,column2,.....)selectcolumn1,column2,.....fromoldTable

更多相关操作:

参考数据库、表、列的重命名

列出参考内容来方便查看

一、更改数据库名

代码如下:

sp_renamedb

更改数据库的名称。

语法

sp_renamedb[@dbname=]'old_name',

[@newname=]'new_name'

参数

[@dbname=]'old_name'

是数据库的当前名称。old_name为sysname类型,无默认值。

[@newname=]'new_name'

是数据库的新名称。new_name必须遵循标识符规则。new_name为sysname类型,无默认值。

返回代码值

0(成功)或非零数字(失败)

权限

只有sysadmin和dbcreator固定服务器角色的成员才能执行sp_renamedb。

示例

下例将数据库accounting改名为financial。

EXECsp_renamedb'accounting','financial'

二、更改表名或列名

代码如下:

sp_rename[@objname=]'object_name',

[@newname=]'new_name'

[,[@objtype=]'object_type']

/////////////////////////////////////////////

A.重命名表

下例将表customers重命名为custs。

EXECsp_rename'customers','custs'

B.重命名列

下例将表customers中的列contacttitle重命名为title。

EXECsp_rename'customers.[contacttitle]','title','COLUMN'

参考复制表结构和表数据的SQL语句

列出参考内容来方便查看

1.复制表结构及数据到新表

CREATETABLE新表SELECT*FROM旧表

2.只复制表结构到新表

CREATETABLE新表SELECT*FROM旧表WHERE1=2

即:让WHERE条件不成立.

方法二:(由tianshibao提供)

CREATETABLE新表LIKE旧表

3.复制旧表的数据到新表(假设两个表结构一样)

INSERTINTO新表SELECT*FROM旧表

4.复制旧表的数据到新表(假设两个表结构不一样)

INSERTINTO新表(字段1,字段2,.......)SELECT字段1,字段2,......FROM旧表

想到这,发现好像还少了点什么,呃,procedure和constraint,好吧,那我也先删除再添加

先查出来

selectnamefromsys.procedures

selectconstraint_name,table_namefrominformation_schema.table_constraints

再删除

dropprocedure[dbo].[procedure_name]

altertabletableNamedropCONSTRAINT[PK_|FK_|UK_|DF_|CK_]

这里再补充一些东西,关于约束前缀,参考SQL约束前缀

方便查看,再列出来

--主键

constraintPK_字段primarykey(字段),

--唯一约束

constraintUK_字段uniquekey(字段),

--默认约束

constrintDF_字段default('默认值')for字段,

--检查约束

constraintCK_字段check(约束。如:len(字段)>1),

--主外键关系

constraintFK_主表_从表foreign(外键字段)references主表(主表主键字段)

然后再从脚本中读取相应脚本文件并执行(加句废话:要执行多行脚本文件,CommandText里加'\n'就好了)。

解决方案三:思来想去,为什么非要导入数据,直接改表结构就好了呀。于是读取表中字段

selectcolumn_name,data_typefrominformation_schema.columnswheretable_name='tableName'

对于旧表中存在的字段

ALTERTABLE[tableName]ALTERCOLUMN[columnName][int]NOTNULL

对于旧表中不存在的字段

ALTERTABLE[tableName]ADDCOLUMN[columnName][int]NOTNULL

版权声明:本内容来源于网络,如有侵犯您的版权,请联系站长,本站收到您的信息后将及时处理。
上一篇:wps表格打印证件照的方法

 

下一篇:Mysql查看版本号的几种方式

发布日期:2023/11/15
手机扫二维码直达本页
发布时间:15:22:44
点  击:7
录  入:伊伊
相关文章
Baidu
YiJiaCMS 7.5.1 build240527(MSSQL) 闽ICP备05000814号-1
本空间由腾讯云(轻量应用服务器)提供,速盾网络提供加速防护
运行时间载入中.....