BCP及自增标识列
10:58 2012-12-20 通过BCP命令导入导出数据
bcp "test.dbo.lxy133" out d:\lxy133.txt -SMSSQL$SQL08R2 -Usa -Ppassword -c -t@# -b2000 --导入只需把out改成in
bcp "select top 20 * from test.dbo.lxy133" queryout d:\lxy133.txt -S127.0.0.1,1457 -Usa -Ppassword -c -t@# -b2000
-S后面可接实例名,也可接对应ip+端口。-w指定为Unicode编码
/**********10:05 2012-11-5 针对带自增长id表格的导入情况**********/
txt(不含id字段)-->sql
1、先创建含自增长id的表结构,利用企业管理器导入非自增字段,对应的id会自动填充
2、先创建含自增长id的表结构,利用bcp命令导入,由于源数据与目标数据结构不一致,导入会出错
txt(含id字段)-->sql
1、先创建含自增长id的表结构,利用企业管理器导入,结果与原文本一致
2、先创建含自增长id的表结构,利用bcp命令导入,结果id被置换成默认值增长
通过企业管理器将列设为标识列,实际操作是先创建一个与原始表列名相同的临时表,并且设置identity列,然后将数据全部插入到临时表(SET IDENTITY_INSERT table ON|OFF),之后再修改临时表的名称为原始表的名称(利用跟踪查看其具体操作过程,sysobjects中对象的crdate为之后的时间)。
一个巧妙的修改方法,Partition--使用分区切换来增加修改列的自增属性:http://www.cnblogs.com/TeyGao/p/5201706.html
第一步分区数据切换到目标数据表(都是普通表),第二步重置目标数据表的当前标识值。
14:02 2012-11-23
对于已存在记录的表添加identity字段,会自动按照所设定的步长填充
select * into addid from test.dbo.fanr_cityorder
alter table addid drop column id
alter table addid add id int identity(1,2)
Q:如何用sql语句去掉列的自增长(identity)
无法通过alter把现有自增字段改为非自增,比如alter table a alter id int,自增属性不会去掉
--自增改为非自增的一种折中方法
alter table a add xxx int
update a set xxx=id
alter table a drop column id
exec sp_rename 'xxx','id','column'
/**********11:03 2015/7/9 字段由varchar更改为binary**********/
背景:作业定期从master..sysprocesses获取阻塞数据保存到死锁信息表,发现死锁信息表中waittype字段没有显示具体数值,但在sysprocesses中却有。查看字段类型发现不一致,修改死锁信息表的列类型varchar为binary,报错如下。尝试将表中已有数据导出到临时表,然后清空表数据,再用语句修改列类型,依然报错。
通过SSMS->右击表格->设计,将varchar列更改为binary,实际操作是创建一个临时目标表,将原表数据导入到临时表(对应字段要做显示转换),之后再修改临时表的名称为原始表的名称(利用跟踪查看其具体操作过程,sysobjects中对象的crdate为之后的时间)。
BCP及自增标识列的更多相关文章
- SQL Server解惑——标识列的限制和跳号现象
1:每个表只能创建一个标识列. 如下测试所示,如果表中有一个标识列,新增一个标识列就会遇到错误"Multiple identity columns specified for table ...
- 使用JDBC插入数据到ORACLE,使用标识列自增列
不同于SQL Server的是,Oracle中插入数据的时候,没有自增列或者是标识列,但是,我们又不想显式的进行主键的插入,这里,必须在Oracle数据库中指定一个标识列,或者说是一个序列.具体方法如 ...
- sqlserver 插入数据时异常,仅当使用了列列表并且 IDENTITY_INSERT 为 ON 时,才能为表'XXXXX.dbo.XXXXXXXXX'中的标识列指定显式值。
INSERT INTO XXXXXXXXX.dbo.XXXXXXXXX select * from XXXXXXXXX 仅当使用了列列表并且 IDENTITY_INSERT 为 ON 时,才能为表'X ...
- 使用sql语句创建修改SQL Server标识列(即自动增长列)
一.标识列的定义以及特点SQL Server中的标识列又称标识符列,习惯上又叫自增列.该种列具有以下三种特点:1.列的数据类型为不带小数的数值类型2.在进行插入(Insert)操作时,该列的值是由系统 ...
- Guid算法与标识列(自动增长字段)在表中的应用
<<1>>int(bigint)+标识列(自动增长字段) 用标识列实现字段自增可以避免并发等问题.不需开发人员自己控制自增,用标识列的字段在Insert的时候不用指定主键的值. ...
- 当 IDENTITY_INSERT 设置为 OFF 时,不能为表‘XXX’中的标识列插入显式值。
在创建事务复制时,很多时候不一定使用快照进行初始化,而是使用备份还原初始化.当对有标识列(即identity的自增列)的表进行复制的时候,使用备份还原初始化搭建起来的复制常常就会报错,即:当 IDEN ...
- SQL Server中的标识列
一.标识列的定义以及特点 SQL Server中的标识列又称标识符列,习惯上又叫自增列. 该种列具有以下三种特点: .列的数据类型为不带小数的数值类型 .在进行插入(Insert)操作时,该列的值是由 ...
- Oracle 12C -- Identity Columns(标识列)
Identity Columns很适合数据库中需要"surrogate keys"的场景.依赖sequence产生器,每行的标识列会被赋予一个自增或自减的值.缺省,标识列在创建的时 ...
- SQL SERVER重置自动编号列(标识列)
两种方法: 一种是用Truncate TRUNCATE TABLE name 可以删除表内所有值并重置标识值 二是用DBCC CHECKIDENT DBCC CHECKIDENT ('table_na ...
随机推荐
- WBS练习
我们把这次团队程序设计分成了6个模块,让每一个同学都能参与其中,然后让每一个人选一个自己喜欢的模块,最后数据库设计这个部分就大家一起来做. Everybody's task allocation is ...
- 对于flat_interface与public_interface的理解
对于这两个interface含义的理解一波三折,下面我把各种理解都记录下来. 2014-9-23 #可以把flat_interface理解为Openstack整套生态系统内部的网络接口,内部各 ...
- cURL 学习笔记与总结(2)网页爬虫、天气预报
例1.一个简单的 curl 获取百度 html 的爬虫程序(crawler): spider.php <?php /* 获取百度html的简单网页爬虫 */ $curl = curl_init( ...
- PhpStorm中文教程
PhpStorm中文教程 | 浏览:15972 | 更新:2014-06-10 21:14 1 2 3 4 5 分步阅读 PhpStorm是一款强大的IDE,非常适合于PHP开发人员及前端工程师.提供 ...
- Tiffany
--名称:Tiffany&Co(蒂芙尼) --总部:美国,纽约 --历史:1837年创立 --产品:珠宝.手表. 配饰.礼品 --特点:品牌,质量,奢饰品
- 奥迪--Q3
-型号:Q3 -价格:23-35W -动力:1.4T/2.0T -变速箱:6挡双离合/7挡双离合 -长宽高:4.40,1.84,1.59 -油箱:64L -发动机:EA888 -大灯:氙气(选装LED ...
- Memcache 提高缓存命中率
最近手上某个项目跟新代码,新的代码里大量采用memcahce作为缓存.所以开始深入了解memcache的内存分配策略.以前就听说有个PHP写的memcache监控脚本,在网上搜索了一下,果断下载下来用 ...
- SQLQuery 实现别名映射
public List getQueryList(Map paramMap, int start, int maxResults) throws DataAccessException, Hibern ...
- php 通过exec 创建git分支失败
今天给我们自己的发布系统增加一个新建分支的功能,操作比较简单,但是使用php执行shell命令的时候总是无法push分支到远程,但是登陆服务器执行却是可以的 新建分支命令如下 git fetch -- ...
- JS框架比较
https://www.oschina.net/translate/comparison-of-js-frameworks这几个框架我都用过1. Ember 2.x已经没有script标签在页面里了, ...