`
pcajax
  • 浏览: 2173988 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

如果更改列为自增自段

阅读更多
[摘自网络]
create table [表名]
(
[自动编号字段] int IDENTITY (1,1) PRIMARY KEY ,
[字段1] nVarChar(50) default '默认值' null ,
[字段2] ntext null ,
[字段3] datetime,
[字段4] money null ,
[字段5] int default 0,
[字段6] Decimal (12,4) default 0,
[字段7] image null ,
)

删除表:
Drop table [表名]

插入数据:
INSERT INTO [表名] (字段1,字段2) VALUES (100,'51WINDOWS.NET')

删除数据:
DELETE FROM [表名] WHERE [字段名]>100

更新数据:
UPDATE [表名] SET [字段1] = 200,[字段2] = '51WINDOWS.NET' WHERE [字段三] = 'HAIWA'

新增字段:
ALTER TABLE [表名] ADD [字段名] NVARCHAR (50) NULL

删除字段:
ALTER TABLE [表名] DROP COLUMN [字段名]

修改字段:
ALTER TABLE [表名] ALTER COLUMN [字段名] NVARCHAR (50) NULL

重命名表:(Access 重命名表,请参考文章:在Access数据库中重命名表)
sp_rename '表名', '新表名', 'OBJECT'

新建约束:
ALTER TABLE [表名] ADD CONSTRAINT 约束名 CHECK ([约束字段] <= '2000-1-1')

删除约束:
ALTER TABLE [表名] DROP CONSTRAINT 约束名

新建默认值
ALTER TABLE [表名] ADD CONSTRAINT 默认值名 DEFAULT '51WINDOWS.NET' FOR [字段名]

删除默认值
ALTER TABLE [表名] DROP CONSTRAINT 默认值名

删除Sql Server 中的日志,减小数据库文件大小
dump transaction 数据库名 with no_log
backup log 数据库名 with no_log
dbcc shrinkdatabase(数据库名)
exec sp_dboption '数据库名', 'autoshrink', 'true'

自增列不能直接修改,必须将原有ID列删除,然后重新添加一列具有identity属性的ID字段,语句如下

alter table 表名
drop column ID

alter table 表名
add ID int identity(1,1)

修改日期字段为Datatime类型,首先要保证表中无数据,或现有数据可以直接转换为datetime类型,否则修改字段类型就会失败。
alter table 表名
alter column 日期字段名 datetime

1, 使用一个数据库之前要引用他:use 数据库名
2, exists()判断子查询的结果是否存在,返回true or false
3, object_id('对象名') 返回该对象名对应的Id,该id存储在sysobjects表中。
4, 建表时自动建立主键约束:create table a(b char(4),c int,constraint 主键名 primary key(c))
或者:create table a(a char(4) cint primary key) 或者:create table a(a char(4) cint constraint 主键名 primary key)
5, 创建索引:create index 索引名 on 表名(字段名)
6, 为一个表添加外键:alter table 表名 add constraint 外键名 foreign key(字段)references 表名(字段)
7, identity(seed,range) 创建一个标识列,与null,not null并列。seed表示种子,即初始值;range表示增长幅度。
8, 局部临时表 #xxx ,只能被当前会话访问,在该会话结束后自动消失。
9, 全局临时表 ##xx , 可以供多个用户使用,在该会话结束后自动消失。

10,为表 添加/修改/删除列 :alter table 表名 add 列名 type/alter column 列名 newtype/drop 列名
11,可以通过多次安装sqlserver为其创建多个实例
12,用系统过程 sp_reZGXX_XM 重新命名表和列:
sp_reZGXX_XM 原表名,新表名
sp_reZGXX_XM "表名.原列名",新列名
13,如果想显示的在identity列中插入值,则需要先设置:set identity_insert 表名 on
插入完毕后最好设置:set identity_insert 表名 off
14, 利用writetext往text 或 image列中写入值:

declare @var varbinary(16)
select @var=textptr(c) from test where a=10
writetext test.c @var 'zhongguo '

注意:使用Writetext,一般需要首先这样设置:sp_dboption 数据库名,'SELECT into/bulkcopy',true
15, truncate table 表名 删除表格的所有数据,速度很快。
16,统计函数中除了count(*) 之外,都忽略空值(null).
17, 由于text和image类型数据很长,在查询之前可以通过设置全局变量textsize来指定返回数据的长度,set textsize 50
如果想查阅全局变量textsize的值:select @@textsize

18, 通过reaDtext 读取text的数据:

declare @var varbinary(16)
select @var=textptr(c) from test where a=10
readtext test.c @var 4 3
此例返回第5,6,7个字符。应为长度要求是3,起始是0,所以4表示从第五个字符读起。
其中textptr是返回指定的text,ntext,image列的指针,一般保存到varbinary类型的变量中
19, like 语句中,可以指定简单的正则表达式,[a-z]表示一个任意字母,[^a-z]表示一个非字母字符
20,like 也是唯一可以在text列上使用的操作符
21,逻辑操作符优先级:NOT > AND > OR
22, 在group by 一个记录集时,所有的null组成一组。
23,带有group by 子句的 select中可以有where子句,但是where 子句必须放在group by 前面。
24,如果group by 子句中用了all,即 group by all xxx ,则不符合检索条件的记录也显示,但不参与统计。
25,having 中,只能包含 group by子句中 指定的列,也可以包含统计函数。where中可指定任何列,但是不能用统计函数
26, having 子句从最终结果中将不满足该条件的分组去掉
27,不带group by子句时也可以使用having子句,并将整个查询结果作为一个组,但是,由于出现在选择列表中的列
和出现在having子句中的列必须是group by 子句中的列,所以,当不带group by子句时,不能在having子句和
选择列表中直接使用列名,只能使用统计函数。
28,当在group by子句后指定order by子句时,只能在order by子句中指定group by子句中的列或者统计函数
29,在进行union运算时,自动删除结果中的重复行,如果使用all选项 ,则可以将所有行显示在结果中:union all
30, 在union时,合并结果集中的列名有第一个查询给出,所以后面进行排旬时一定要注意order by 子句中的字段名
31,可以通过 select fieldslist into 新表名 from 表名,来创建一个新表,并将当前表中的数据全部插入到新
表中,但是做这个操作之前需要保证数据库选项 select into/bulkcopy 设置为true。方法如下:
use master /*设置命令必须在master数据库中进行*/
sp_dboption 数据库a名,"select into/bulkcopy",true /*设置数据库选项*/
use 数据库a名
checkpoint /*使设置结果生效*/

如果要将统计结果或者计算结果插入到新表中,必须以标题的形式给出列名,如:
select a,b=avg(c) into mm from nn group by a
32, 随即取出N条记录的方法:select top N * from 表名 order by newid()

33,创建唯一约束:create table a(b int not nul constraint 约束名 unique,c char(10) null)
或者:create table a(b int,c char(10),constraint 约束名 unique(b))

34,在sql server表格选定一个单元格,ctrl+0即可将单元格的值置为null

35,为变量赋值方法:set @xxx=??? ,如果变量的值取自一个查询的话,需要用select, 如:select @xxx=??? from ??? where ????
如果要返回一个记录集,但是不是从一个表格,而是全部是系统变量或自定义变量组成。则不必写from子句:select ??,??,??
36,创建一个返回一张表的函数:
create function fn_Tree(@Id int)
returns table @tb (id int ,fid int)
as
begin
insert @tb select id,fid from tablename where fid=@id
while exists (select 1 from tablename where fid in (select id from @tb)
and id not in (select id from @tb) )
insert @tb select id,fid from tablename where fid in (select id from @tb)
and id not in (select id from @tb)
return
end

表的字段为id,fid
insert @tb select 语句,将查询结果插入到当前的表格(@tb)中

调用:
select * from dbo.fn_Tree(0)
go
select * from dbo.fn_Tree(1
go
37,一个日期格式转换的例子,一般可以用convert,cast等函数转换,但是这个例子没有:
declare @a varchar(50)
declare @b varchar(50)
declare @c int
declare @d varchar(50)
declare @e varchar(50)

set @a='1/20/03 10:06:41:59'
set @b=reverse(@a)
set @c=charindex('/',@b)
set @d=stuff(@b,@c,0,'02')
set @e=reverse(@d)
select @a,@b,@c
select @d,@e

Brave Heart

0
0
0
(请您对文章做出评价)
分享到:
评论

相关推荐

    powerdesigner创建oracle_数据库表,设置表主键列为自动增长

    本篇文章将详细介绍如何利用PowerDesigner 12.5版本创建Oracle数据库表,并设置表的主键列为自动增长。 #### 二、准备工作 在开始之前,请确保已经安装了PowerDesigner 12.5,并且具备一定的Oracle数据库基础知识...

    SQL Server修改标识列方法 如自增列的批量化修改

    然而,在某些情况下,可能需要对标识列进行修改,例如将自增属性改为非自增或调整其起始值。本篇文章将探讨如何批量修改SQL Server中的标识列。 首先,要注意的是直接修改系统表`syscolumns`并不是一个推荐的做法,...

    关于mysql自增id,你需要知道的

    如果设置自增列为主键,新记录将按照递增顺序插入,这极大地优化了插入性能,因为数据可以顺序添加到索引节点,避免了因插入随机值导致的页面移动和碎片。相比非自增主键,自增主键提供了更高的存取效率和更紧凑的...

    python mysql自增字段AUTO_INCREMENT值的修改方式

    总的来说,本文对如何在Python脚本中操作MySQL数据库以修改AUTO_INCREMENT值给出了全面的介绍,包括了连接数据库、查询当前自增值、修改自增值的方法,以及在Django框架中可能会遇到的一些相关问题的解决办法,是为...

    Sql修改标示列的方法

    然而,在某些情况下,可能需要手动修改标识列的行为,例如更改其起始值、重置序列或者调整其属性等。下面将详细介绍几种常见的SQL修改标识列的方法。 #### 1. 允许对系统表进行更新 在Microsoft SQL Server中,...

    数据表修改语法

    ### 数据表修改语法详解 #### 一、概述 在数据库管理与维护的过程中,经常会遇到需要对现有的数据表结构进行修改的情况。SQL(Structured Query Language)提供了丰富的语法来满足这种需求,其中最为常见的就是...

    CodeSmith的列对象的ExtendedProperty的属性

    例如,如果某个列具有某种特殊的计算逻辑或者是自增主键,则可以通过 `ExtendedProperties` 来存储这些信息。 ### ExtendedProperties 的具体属性介绍 1. **CS_isIdentity**: 表示该列是否为自增长标识列。 - **...

    sql常用语句 个人收集的几个常用语句

    这段代码使用`WHILE`循环更新表`ds_gzgl`中的数据,具体操作为:为每个循环迭代创建一个名为`gz`加数字的列,并将这些列的值设为0(如果这些列为空)。 #### 六、插入数据:使用`INSERT INTO`与`SELECT`结合 有...

    mysql数据库.pdf

    在数据库中定义表字段数据类型时,有多种数据类型可以选择,主要可以分为数值型、日期/时间和字符串型。数值型中又分为整型、浮点型等;日期/时间类型包括如TIMESTAMP类型,可以自动刷新以记录最后修改时间;字符串...

    实验二 操作表及设置约束.docx

    1. **操作方法**:由于`slt_course`表已存在一个自增字段`sc_id`,这里假设需要新增一个额外的自增字段`id`。 2. **SQL语句**: ```sql ALTER TABLE slt_course ADD id INT AUTO_INCREMENT FIRST; ``` 以上是对...

    SQL常用代码.doc

    - `IDENTITY(n, m)`: 定义标识列,即自增列,从`n`开始,每次递增`m`。 - `约束`: 可以定义多种约束,例如`PRIMARY KEY`、`FOREIGN KEY`等。 - `NOT NULL`: 指定该列为非空列。 **2. 删除表** - **语法**: `...

    hb-zhyu的模拟队列

    - **empty()**:检查 `b - a + 1` 是否等于0,如果是,则队列为空,返回 "YES";否则返回 "NO"。 #### 扩展功能 在修改后的代码中,添加了更多功能,如: - **front()**:与 `query()` 类似,输出队头元素,但名称...

    实战Delphi数据网格色彩特效

    如果希望整个选中行的颜色与非选中行不同,可以利用`dgRowSelect`选项,并修改选中行的颜色。例如,可以将选中行的颜色设为红色,以增强视觉效果。这同样通过修改`DbGridDrawColumnCell`事件实现: ```delphi ...

    mysql总结超详细

    - **2.1.4.4 利用alter命令修改id列为自增主键列** - 使用`ALTER TABLE table_name ADD id INT AUTO_INCREMENT PRIMARY KEY;`命令添加。 - **2.1.4.5 建表后利用alter增加普通索引** - 使用`ALTER TABLE table_...

    MySQLDBA运维笔记.pdf

    mysql 总结.............................................................................................1.7.1 为管理员 root 用户设置密码并修改方法之一...................................................22 ...

Global site tag (gtag.js) - Google Analytics