如果表之前有主键则先删除:
alter table 表名 drop constraint 主键名
修改主键:
alter table 表名 add constraint 主键名 primary key (column1,column2,,column)
alter table t1 drop column c1
alter table t1 add column c1int identity
1使用sql语句创建
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
use master -- 设置当前数据库为master,以便访问sysdatabases表goif exists(select from sysdatabases where name='stuDB')--检查是否存在drop database stuDB--存在就删除go
create database stuDB --创建数据库
on primary -- 默认就属于primary文件组,可省略
(
/--数据文件的具体描述--/
name='stuDB_data', -- 主数据文件的逻辑名称
filename='D:\stuDB_datamdf', -- 主数据文件的物理名称
size=5mb, --主数据文件的初始大小
maxsize=100mb, -- 主数据文件增长的最大值
filegrowth=15%--主数据文件的增长率
)
log on
(
/--日志文件的具体描述,各参数含义同上--/
name='stuDB_log',
filename='D:\stuDB_logldf',
size=2mb,
filegrowth=1mb
)
go
2使用SQL Server Management Studio新建数据库
21 登录SQL Server Management Studio
22 右击左侧菜单栏中的数据库项
23 在出现的右键菜单上以鼠标左键点击新建数据库
24 在出现的窗口中输入数据库名称并选择文件位置
25 点击确定
建表相关
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
use StuDB
go
if exists(select from sysobjects where name='stuMarks')
drop table stuMarks
create table stuMarks
(
ExamNo int identity(1,1) primary key,
stuNo char(6) not null,
writtenExam int not null,
LabExam int not null
)
go
-- 其中,列属性"identity(起始值,递增量)" 表示"ExamNo"列为自动编号, 也称为标识列
alter table 表名
add constraint 约束名 约束类型 具体的约束说明
alter table 表名
drop constraint 约束名
alter table stuMarks
add constraint UQ_stuNo Unique(stuNo)
alter table stuMarks
drop constraint UQ_stuNo
/--添加SQL登录账户--/
exec sp_addlogin 'xie', '123456' -- 账户名为xie,密码为123456
--删除xie账户名
exec sp_droplogin 'xie'
/--在stuDB数据库中添加两个用户(必须存在)--/
use stuDB
go
exec sp_grantdbaccess 'xie','123456'
go
-- 提示:SQL Server 中的dbo用户是具有在数据库中执行所有活动权限的用户,表示数据库的所有者(owner),一般来说,
-- 如果创建了某个数据库,就是该数据库的所有者,即dbo用户,dbo用户是一个比较特殊的数据库用户,无法删除,且此用
-- 户始终出现在每个数据库中
/ --给数据库用户授权-- /
-- 授权的语法如下
-- grant 权限 [on 表名] to 数据库用户
use stuDB
go
grant select,update,insert on stuMarks to xie
grant create table to xie
go
我知道一个方法,可能比较笨。
先查询一次数据库SELECT FROM TABLE
rsgetString("IDENTITY_INSERT"); // rs是结果集对象。
这条语句需要try{ }
如果没有这个字段就会报Exception
以下是我建立的一个表的语句:
-- Create table
create table kongxianji537(
LOGDATE DATE,
DEALSTAFF VARCHAR2(20),
ACTIONTYPE_GJ VARCHAR2(20),
YEAR VARCHAR2(20),
MONTH VARCHAR2(20),
DAY VARCHAR2(20),
NUM NUMBER
)
tablespace SERVICE_MAIN_DAT
pctfree 10
pctused 40
initrans 1
maxtrans 255
storage
(
initial 1M
next 1M
minextents 1
maxextents unlimited
pctincrease 0
);
其中:
storage
(
initial 1M
next 1M
minextents 1
maxextents unlimited
pctincrease 0
);
部分为设置列属性的自动增加,基数和步长,initial 1M属性表示基数是1M,next 1M属性表示每次以1M的步长增加,minextents 1,maxextents unlimited,表示自动增加
SQL Server自增字段可以在SQL Server Management Studio或使用SQL语句在程序或者查询分析器里面实现,将为您分别说明。
一、在SQL Server Management Studio中实现SQL Server自增字段
打开SQL Server Management Studio,打开数据库之后,在选中的表上点“修改”,在选中需要设置为自增的字段,在右下方的表设计器里选择“标识规范”,选“是”,就设定好了。
二、使用SQL语句在程序或者查询分析器里面实现SQL Server自增字段
sql server 设置自增字段identity属性 (以新建数据表tablename中的id字段为例)
create table tablename
(
id int identity(1,1)
)
这样设置之后,tablename数据表中的id字段就是自增列。
如果想实现带前缀或者后缀的自动增加字段,不能用varchar,还是使用上面的方法创建字段,但是在读取的时候用增加前后缀的形式来显示想要的效果,例如如果你希望得出结果是a001可以这么做select 'a'+convert(varchar(20),id) from tablename,这里的tablename是你建立的具体的表明。
identity是定义此列为标识列的意思,括号中的第一个one指的是标识从1开始,第二个one指的是以1的增量递增。
如果不明白什么是标识列,请参见这里:
>
以上就是关于mysql数据库如何修改某一列主键的属性,让其自动增长,如下图,怎么修改才可以全部的内容,包括:mysql数据库如何修改某一列主键的属性,让其自动增长,如下图,怎么修改才可以、怎样使用SQL SERVER新建立一个数据库、java如何得到数据库表是否有IDENTITY_INSERT属性(标识属性)等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)