当delete 表名 之后,插入一条数据时,自增值是按上一次的记录继续自增的。
那如何把自增值改为新建表时的初始值或指定值呢?
DBCC CHECKIDENT (Tbl_表名, RESEED, 383)
把自增值改为从383起,即添加数据时,ID为384
update 表名 set 字段2=字段1
运行语句之后,即会把字段1的值赋值给字段2,二个字段的内容是一样的
INSERT INTO 表名2(字段2) select 字段1 from 表名1 order by ID
使用复制粘贴可以把表内容复制到其它表中,但自增ID值不一定和原表是一样的。当想要一个和原表一模一样的结构和内容时,使用以下语句:
比如源表A,需要一个和A一样的表B,则
select * into B from A
select 字段,count(字段) as count from 表名 group by 字段 having count(字段) >1
有时候,字段的长度在创建时过短了,但表中已有了内容,有一个比较笨的办法,就是完全复制当前表,再重新创建目标表,然后再把内容重新写入目标表中。
更好的解决办法是直接修改字段的长度,如下所示:
ALTER TABLE 表名 ALTER COLUMN 字段名 字段类型
解决办法是:
在系统的”服务“找到”SQL Server 代理 (MSSQLSERVER)“,把它的启动类型改为自动即可。
在SQL语句中加入一些处理函数,能得到更人性化的结果,就不需要在应用中处理了!
使用ORM保存时没有问题.
可以在插入的语句前添加字符N
SQL Server代理-----作业----备份任务名称-----右键,选择属性。
修改“所有者”属性即可
SQL SERVER 2005之前的版本只能用函数方法实现,SQL SERVER 2005之后新增了CTE(Common Table Expression)功能,可以利用CTE实现递归查询
ALTER DATABASE [库名] COLLATE 排序规则名称
例如:将列date中1124改成1120, 20111124 改成20111120
update tab set date = replace(date,‘1124’,‘1120’) where 条件
INSERT INTO 表名(字段1,字段2,字段3,...) VALUES (值1,值2,值3,...);
执行下面的SQL脚本就可以备份当前数据库实例的所有数据库(除了系统数据库)
右键点击SQL Server(MSSQLSERVER),启动参数里输入 -t272 ,然后点击增加