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

【腾讯云】云服务器、云数据库、COS、CDN、短信等云产品特惠热卖中      
[公益] 地球是我家,绿化靠大家      
2023年 圣诞节 023
2024年 腊八节 047
2024年 元 旦 030
2024年 春 节 070
综合数码金融娱乐服务报刊政府机构 推荐 排名 今日 申请 友情  
您现在的位置:首页 >> 数据库 >> 内容
本类新增
本类热门文章
根据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

版权声明:本内容来源于网络,如有侵犯您的版权,请联系站长,本站收到您的信息后将及时处理。
上一篇:在SQL中修改数据的基础语句 下一篇:MYSQL大表改字段慢问题的解决
发布日期:2023/11/15
手机扫二维码直达本页
发布时间:15:22:44
点  击:18
录  入:伊伊
相关文章
Baidu
YiJiaCMS 7.3.5 build231025(MSSQL) 闽ICP备05000814号-1
本空间由腾讯云(轻量应用服务器)提供,Cloudflare提供加速防护
运行时间载入中.....