重庆分公司,新征程启航
为企业提供网站建设、域名注册、服务器等服务
创建表的时候可以 比如ID列自增
创新互联公司服务项目包括汇川网站建设、汇川网站制作、汇川网页制作以及汇川网络营销策划等。多年来,我们专注于互联网行业,利用自身积累的技术优势、行业经验、深度合作伙伴关系等,向广大中小型企业、政府机构等提供互联网行业的解决方案,汇川网站推广取得了明显的社会效益与经济效益。目前,我们服务的客户以成都为中心已经辐射到汇川省份的部分城市,未来相信会继续扩大服务区域并继续获得客户的支持与信任!
create table T1
(
id int identity(1,1),
ccode varchar(10),
cname varchar(100)
)
1、例如给某表添加一个Num自增列,这张表已经有很多行数据了,通过sqlserver表设计器,添加一个新字段Num,如图所示,
2、添加字段后,点击保存,会弹出一个小框“不允许保存更改。所做的更改要求删除并重新创建一下表”,这个要求不能满足啊,这么多的数据,删除了怎么办?
3、点击SQL Server Management Studio顶部的菜单【工具】-【选项】,
4、打开【选项】弹窗界面如图所示,默认展开的是【常规】选项,
5、拖动左侧的菜单,找到并点击【表设计器】-【表设计器和数据库设计器】,
6、在右侧出现的【表选项】中,找到并 取消勾选【阻止保存要求重新创建表的更改】,点击【确定】按钮,
7、再次在表设计界面,点击保存,如果表中的数据量很大的话,会有这个验证警告:“将定义更改保存到包含有大量数据的表中可能需要很长时间”,此项可以忽略,
8、直接点击【是】按钮,就可以保存成功了。
SqlServer有3种方式设置自增列,
SSMS中在图形化界面中建表时,设置自动增长的其实值及每次增量。
2. --语句建表时设置自增列,从1开始增长,每次增加1
create table test(col1 int indentity(1,1,))。
3. --修改列为从1开始增长,每次增加10
alter table test alter col1 int indentity(1,10)。
操作
1、创建一个表 movie,设置字段 id 具有 identity(1,1),
注:identity(start,step),中的参数start表示从start开始标号,step表示每次递增的步长数量
2、当我们进行插入操作的时候,便会报如下的错误;
注:mysql 上是可以这么操作的;
3、解决方法是,在使用前添加一句
SET IDENTITY_Insert movie ON;
注:SET IDENTITY_Insert table switch 表示是否允许table表中的
identity 字段的插入操作,On表示允许,Off表示不允许
4、有时候为了安全性,会习惯性的在操作前,允许,操作后不允许:
5、注:mssql 目前只允许同时只对一张表进行
SET IDENTITY_Insert table ON;
操作,所以如果考虑到在不同的表之间进行操作的话,
需要先把前一张表给OFF 掉;
identity值
查看当前表的indentity的值:
dbcc checkident(table, NORESEED)
其中 table 表示的要查看的表, NORESEED表示不会修改该值,
如下图查询到的结果是3
修改当前表的 identity 的值
dbcc checkident(table,RESEED,value)
其中:
table 表示的是要修改的表;
RESEED 表示的是identity的值会被修改;
value 表示的是修改后的值;
如下图所示,是把值修改成1后,查询的结果:
方法如下:
例如:
create table student(
Sno int identity(1,1) primary key,
Sname varchar(100)
)
这样我们的Sno字段就可以实现自增了,第一个参数是标识种子(就是开始的值),第二个参数是标识增值(每次增加多少)
这里我们开始为1,每次增加1
如果做插入的话,则:
insert into student values('李四')
注意values里面不要写自增字段名的值,因为数据库会自动帮你生成。
例如第一行为 1 小明
insert into student values('李四')
变为 1 小明
2 李四
扩展资料
SQL SERVER几种数据迁移
使用数据库客户端(SSMS)的界面工具。右键选择要导出数据的数据库,选择“任务”——“导出数据”,而导入则相反,导入时,SQLServer会默认创建一张新表,字段名也默认跟导入的Excel标题一样,并且会默认字段数据类型等。
当然在可以在向导进行修改。需要注意的是如果标题不是英文而是中文,默认创建字段名也是中文,这将给后面数据更新操作带来麻烦,所以最好还是以有意义的英文字段名。把数据导入后,再通过执行语句,把数据插入/更新到业务表。
从SQLServer2005开始,可以直接在SSMS上查询出来的结果复制,然后粘贴到Excel上,对于少量数据来说,是非常快速方便的,需要注意的是长数字可能会变成科学记数法的形式,提前在Excel上指定列的格式为文本即可。
导入的话,ctrl + c 复制Excel上的数据,然后在选择相关表,编辑数据,把数据直接粘贴上去即可。但是不建议直接粘贴到业务表(如果表是空白没有数据,并且字段顺序对应,可以这样操作),而是建议先粘贴到一个新建的中间表中,然后再通过语句,把数据插入/更新到业务表。
这种方法的导出导入,适合于少量的数据,如5000行以内的记录,大于5000行以上就不建议了,速度较慢,如果数据过大,还一定成功。
参考资料
百度百科——SQL
--1 表的identity字段可以在[sys.identity_columns]找到
--比如某张表table_example的自增字段可以这样找
select * from sys.identity_columns where [object_id]= OBJECT_ID('table_example')
--2 有没有是判断,这里等价于是否存在自增字段,可以这样写:
if exists(select * from sys.identity_columns where [object_id]= OBJECT_ID('table_example'))
begin
print 'Yes'
end
else
begin
print 'No'
end
(1)将ID删除,重新新增一个
(2)truncate table 表名
(3)dbcc checkident(表名,RESEED,0)
SQLserver数据库主要特性
(1)高性能设计,可充分利用WindowsNT的优势。
(2)系统管理先进,支持Windows图形化管理工具,支持本地和远程的系统管理和配置。
(3)强壮的事务处理功能,采用各种方法保证数据的完整性。
(4)支持对称多处理器结构、存储过程、ODBC,并具有自主的SQL语言。 SQLServer以其内置的数据复制功能、强大的管理工具、与Internet的紧密集成和开放的系统结构为广大的用户、开发人员和系统集成商提供了一个出众的数据库平台。
参考资料
SQLserver数据库.百度百科[引用时间2018-4-5]