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 ...
随机推荐
- 在Excel中实现查询功能
$sn = Read-Host -Prompt "请输入员工号|序列号|资产号" $xl = New-Object -ComObject "Excel.Applicati ...
- JBoss错误
jboss进程在启动时碰到Address already in use: JVM_Bind /0.0.0.0:8080错误. 这个错误的含义是8080端口被占用了. 解决方法: 方法1: 开始--运行 ...
- HDU 5773 最长上升子序列
题意 给出一个序列 问它的最长严格上升子序列多长 这个序列中的0可以被替代为任何数 n的范围给出了1e5 所以平常的O(n*n)lis不能用了 在kuangbin的模板里有O(nlogn)的模板 套上 ...
- IE6 — 你若安好,便是晴天霹雳 [ 乱弹 ]
为什么还有人在用IE6?估计和中国的盗版业有很大关系吧.小白的电脑启不来了,请人重装系统,一张古老的Ghost搞定,IE6便落地生根.今天碰到一例报告说某网站在IE6下丑陋吓人,无心无力去解决,于是来 ...
- 【IOS笔记】About Events in iOS
About Events in iOS Users manipulate their iOS devices in a number of ways, such as touching the scr ...
- laravel 自定义函数 使用
1.创建app/helpers.php 2.注册路径 { ... "autoload": { "files": [ "app/helpers.php& ...
- socket 中午吃的啥
http://www.cnblogs.com/thinksasa/archive/2013/02/26/2934206.html
- Android 一键直接查看Sqlite数据库数据
转自:http://www.cnblogs.com/trinea/archive/2012/11/16/2773656.html 本文主要介绍Android开发中如何一键直接查看sqlite数据库中的 ...
- [Virtualization][SDN] VXLAN到底是什么 [转]
写在转发之前: 几个月以前,在北大机房和燕园大厦直接拉了一根光钎.两端彼此为校园内公网IP.为了方便连接彼此机房,我做个一个VPN server在燕园的边界,北大机房使用client拨回.两个物理机房 ...
- springmvc返回值、数据写到页面、表单提交、ajax、重定向
实验是在前一篇文章的项目上做的: 数据写到页面 后台往前台传数据 TestController添加 /** * 方法的返回值采用ModelAndView, new ModelAndView(" ...