SQL 数据结构操作语句

修改字段

exec sp_rename '表名.[字段名]','新字段名','column'

alter table tab_info rename column createname to thisname;//不能通过,有待验证是否为mysql的修改语句

修改字段属性:alter table tab_info alter column thisname varchar(200) not null;

修改默认值alter table tabinfo add constraint df default('嘿嘿') for thisname;

ALTER TABLE 表名 add DEFAULT ('修改后的默认值') for 字段名 WITH VALUES 
 
注:如果该字段以前已经有默认值了,在修改之前需要先将约束删除,否则会报错 
删约束的SQL: 
Alter table 表名 drop constraint 约束名 

 

添加、删除字段

    表添加字段的SQL语句的写法  

    通用式:
    alter table [表名] add [字段名] 字段属性 default 缺省值 default 是可选参数  

    增加字段:【字段名不加‘’】
    alter table [表名] add 字段名 smallint default 0 增加数字字段,整型,缺省值为0
    alter table [表名] add 字段名 intdefault 0 增加数字字段,长整型,缺省值为0
    alter table [表名] add 字段名 singledefault 0 增加数字字段,单精度型,缺省值为0
    alter table [表名] add 字段名 doubledefault 0 增加数字字段,双精度型,缺省值为0
    alter table [表名] add 字段名Tinyint default 0 增加数字字段,字节型,缺省值为0  

    alter table[表名] add 字段名 text [null] 增加备注型字段,[null]可选参数
    alter table [表名] add 字段名 memo[null] 增加备注型字段,[null]可选参数  

    alter table[表名] add 字段名 varchar(N) [null] 增加变长文本型字段大小 为N(1~255)
    alter table [表名] add 字段名 char[null] 增加定长文本型字段 大小固定为255  

    alter table[表名] add 字段名 Datetime default 函数 增加日期型字段,其中函数 可以是 now(),date()等,表示缺省值
    (上面都是最常用的,还有其他的属性,可以参考下面的数据类型描述)  

    删除字段:alter table [表名] drop 字段名  

    修改变长文本型字段的大小:alter table [表名] alter column 字段名 varchar(N)  

    删除表:drop table [表名]  

 修改字段备注信息

if exists(select 1 from sys.extended_properties p where
      p.major_id = object_id('表名')
  and p.minor_id = (select c.column_id from sys.columns c where c.object_id = p.major_id and c.name = '字段名')
)
begin
   declare @CurrentUser sysname
select @CurrentUser = user_name()
execute sp_dropextendedproperty 'MS_Description',
   'user', @CurrentUser, 'table', '表名', 'column', '字段名'

end

select @CurrentUser = user_name()
execute sp_addextendedproperty 'MS_Description',
   '字段描述说明',
   'user', @CurrentUser, 'table', '表名', 'column', '字段名'
go

详细介绍:http://blog.csdn.net/zanychou/article/details/7403336

修改主键为自动增长列

先手动删除索引,另外,只可用于主键没被它表引用,否则数据就可能出错了

alter table tableName drop column columnName
alter table tableName add columnName int identity(1,1) constraint PK_tableName primary key(columnName)

添加/删除约束

--删除约束
ALTER TABLE tablenameDROP CONSTRAINT  约束名--添加列的约束
ALTER TABLE tablename
ADD CONSTRAINT DF_tablename_列名 DEFAULT(0) FOR 列名
alter table 表名 add constraint 主键名 primary key (column1,column2,....,column)

 

常见问题:

1.直接在通过UI设计操作,新添加不为空的列无法保存

原因:

ALTER TABLE 只允许添加满足下述条件的列: 列可以包含 Null 值;或者列具有指定的 DEFAULT 定义;或者要添加的列是标识列或时间戳列;或者,如果前几个条件均未满足,则表必须为空以允许添加此列。

解决:

根据原因中的条件进行操作即可

如指定默认值: alter table [表名] add 字段名 int not null default 0

 

2.sql语句 删除 表中有 默认值 的列 

问题:如果字段设置了默认值,那么字段无法使用sql语句进行修改或删除

原因:将表中的字段设置为NOT NULL(不为空)、给字段增加Default值(默认值)这样的操作都会给该字段添加约束,增加了这些约束后,在用SQL脚本修改字段类型、删除字段的时候均会发生类似错误,需要查找该字段上已存在的约束,并删除存在的约束,再次执行修改/删除脚本即可。

报一下错误: 对象'DF__******' 依赖于 列'column1'。 由于一个或多个对象访问此列,ALTER TABLE ******** 失败。”

解决:

1.查找出表中该列的约束名称

2. 删除存在的约束

declare @name varchar(50)
declare @tb varchar(50)
declare @col varchar(50)
set @tb='tablename'
set @col='colname'
select  @name =b.name from sysobjects b join syscolumns a on b.id = a.cdefault
where a.id = object_id(@tb) and a.name = @col
exec('alter table '+@tb+' drop constraint ' + @name)

 

 

 

 

 

 

 

 

 

时间: 2024-10-03 00:42:51

SQL 数据结构操作语句的相关文章

浅析SQL数据操作语句_MsSql

SQL 中的运算符  1算术运算符: +:加运算,求两个数或表达式想加的和 -:减运算,求两个数或表达式相减的差 *,乘运算,求两个数或表达式相乘的积 /:除运算,求两个数或表达式相除的商 %:取模运算,求两个数或表达式相除的余数 2.赋值运算 =:把一个数或表达式赋值给另一个标量. 3.比较运算符 =:等于   >大于   < 小于    <>不等于   >= 大于等于   <=小于等于    !=不等于 4.逻辑运算符 AND :当且仅当两个布尔表达式为true时,

sql视图操作语句

数据库中关系表中定义了表的结构和编排方式.然而,SQL语言又提供另外一种数据组织方法,通过它,用户可以按其它组织形式对原来表中的数据进行重新组织.这种方法就是视图.视图的结构和内容是通过SQL查询获得的,它有一个视图名,并可以永久地保存在数据库中.用户通过SQL查询语句,可以象其它普通关系表一样,对视图中的数据进行查询,仿佛它们就是数据库中的"真实表".下面我们对视图的创建和删除这两种操作的SQL语句的功能和使用方法做一介绍. (1)视图的创建 SQL语言所提供的视图创建语句是CREA

sql安全操作语句

SQL语言所提供的有关安全性操作的语句,主要是GRANT和REVOKE这两种. (1)GRANT语句 该语句被用来对特定的用户授予关于数据库对象安全性的权限.通常GRANT语句由表或视图的拥有者来使用,以授权其它用户对相应表或视图中的数据进行存取操作,其使用的格式如下: GRANT语句包括一组被授予的权限.一个权限所作用的表以及一个被授予权限的用户标识符.这里需要说明的是SELECT(列名序列).INSERT(列名序列).DELETE(列名序列)和UPDATE(列名序列)可以结合在一起进行授权.

浅析SQL数据操作语句

SQL 中的运算符 1算术运算符: +:加运算,求两个数或表达式想加的和 -:减运算,求两个数或表达式相减的差 *,乘运算,求两个数或表达式相乘的积 /:除运算,求两个数或表达式相除的商 %:取模运算,求两个数或表达式相除的余数 2.赋值运算 =:把一个数或表达式赋值给另一个标量. 3.比较运算符 =:等于   >大于   < 小于    <>不等于   >= 大于等于   <=小于等于    !=不等于 4.逻辑运算符 AND :当且仅当两个布尔表达式为true时,返

掌握SQL四条最基本的数据操作语句

数据|语句 掌握sql四条最基本的数据操作语句:insert,select,update和delete. 练掌握sql是数据库用户的宝贵财富.在本文中,我们将引导你掌握四条最基本的数据操作语句-sql的核心功能-来依次介绍比较操作符.选择断言以及三值逻辑.当你完成这些学习后,显然你已经开始算是精通sql了. 在我们开始之前,先使用create table语句来创建一个表(如图1所示).ddl语句对数据库对象如表.列和视进行定义.它们并不对表中的行进行处理,这是因为ddl语句并不处理数据库中实际的

asp.net使用LINQ to SQL连接数据库及SQL操作语句用法分析_实用技巧

本文实例讲述了asp.net使用LINQ to SQL连接数据库及SQL操作语句用法.分享给大家供大家参考,具体如下: LINQ简介 LINQ:语言集成查询(Language INtegrated Query)是一组用于c#和Visual Basic语言的扩展.它允许编写C#或者Visual Basic代码以查询数据库相同的方式操作内存数据. LINQ是一门查询语言,和SQL一样,通过一些关键字的组合,实现最终的查询. LINQ的分类 LINQ to Object LINQ to XML LIN

教您使用XML封装数据库操作语句的实现

xml|封装|数据|数据库|语句 在项目开发的过程当中,项目组开发成员的编程风格差异和数据库操作语句SQL的灵活性给项目组带来了越来越多的操作和维护难度. 比如: 从user表中取出所有数据,有的人会写成"select * from user",有的人会写成"select all from user",虽然在操作中不会有任何的错误,但在其他人读程序的过程时就会产生不好的感觉. 如果这种程序差异在项目中的数量级很多,那么在开发的过程当中程序就会出现各种各样的风格,在维

SQL Server数据库管理常用的SQL和T-SQL语句

server|数据|数据库|语句 SQL Server 数据库管理常用的SQL和T-SQL语句  1. 查看数据库的版本 select @@version 2. 查看数据库所在机器操作系统参数 exec master..xp_msver 3. 查看数据库启动的参数 sp_configure 4. 查看数据库启动时间 select convert(varchar(30),login_time,120) from master..sysprocesses where spid=1 查看数据库服务器名

使用XML封装数据库操作语句的实现

xml|封装|数据|数据库|语句 在项目开发的过程当中,项目组开发成员的编程风格差异和数据库操作语句SQL的灵活性给项目组带来了越来越多的操作和维护难度.比如:从user表中取出所有数据,有的人会写成"select * from user",有的人会写成"select all from user",虽然在操作中不会有任何的错误,但在其他人读程序的过程时就会产生不好的感觉.如果这种程序差异在项目中的数量级很多,那么在开发的过程当中程序就会出现各种各样的风格,在维护的过