sql创建序列
① 请教:在sqlSERVER中如何使用序列
SQL Server没有序列,对应的是标识列。
该种列具有以下三种特点:
1、列的数据类型为不带小数的数值类型
2、在进行插入(Insert)操作时,该列的值是由系统按一定规律生成,不允许空值
3、列值不重复,具有标识表中每一行的作用,每个表只能有一个标识列。
标识列的创建与修改
标识列的创建与修改,通常在企业管理器和用Transact-SQL语句都可实现,使用企业管理管理器比较简单,请参考SQL Server的联机帮助,这
里只讨论使用Transact-SQL的方法
1、创建表时指定标识列
标识列可用 IDENTITY 属性建立,因此在SQL Server中,又称标识列为具有IDENTITY属性的列或IDENTITY列。
下面的例子创建一个包含名为ID,类型为int,种子为1,递增量为1的标识列
CREATE TABLE T_test
(ID int IDENTITY(1,1),
Name varchar(50)
)
--插入数据
INSERT T_test(Name) VALUES('张三');
② sql server 2008 请教怎样生成序列号
你这是什么数据库? SQL Server 的话,你可以把CID设为自增加1,这样就可以实现在插入的时候自动生成CID的值了; 如果是oracle,你可以在oracle数据库里建个sequense,通过 select sequense.next() from al 得到自增的序列号;
③ 怎么在sql servler2000中建立一个序列,用sequence写的
sequence 要到 sql servler2012 的版本, 才有。
SQL Server 2000, 2005, 2008 是没有 sequence 这样的对象的。
如果你要实现一个 自动递增列的处理
SQL Server 通过 IDENTITY 来设置
参数有2个,一个是“初始值” 一个是“增量”。
默认情况下 INSERT 语句中,不能对 IDENTITY 的字段进行赋值。
对于 IDENTITY 的列 SQL Server 在 INSERT 的时候,会自动忽略掉。
当IDENTITY列中间的数据被删除,造成数据不连续的时候。可以通过 SET IDENTITY_INSERT 表名 ON/OFF 语句来 允许/禁止 对IDENTITY列进行显式的插入动作。
IDENTITY只能在如下情况下建立:
在创建表时创建新的IDENTITY列
在现有表中创建新的IDENTITY列
不能 把已经存在的列,修改为IDENTITY列
1> CREATE TABLE test_create_tab2 (
2> id INT IDENTITY(1, 1) PRIMARY KEY,
3> val VARCHAR(10)
4> );
5> go
1> INSERT INTO test_create_tab2(val) VALUES ('NO id');
2> go
(1 行受影响)
④ sql server sql语句创建序列怎么写
增加属性应该是这样写的吧
ALTER TABLE cust_id ADD cust_id_seq number(9) identity(1,1)
如果你要搞sequence
CREATE SEQUENCE cust_id_seq
INCREMENT BY 1
START WITH 1
MAXVALUE 999999999
NOCYCLE;
增加的时候用cust_id_seq.nextval
⑤ sql server sql语句创建序列怎么写
增加属性应该是这样写的吧
ALTER
TABLE
cust_id
ADD
cust_id_seq
number(9)
identity(1,1)
如果你要搞sequence
CREATE
SEQUENCE
cust_id_seq
INCREMENT
BY
1
START
WITH
1
MAXVALUE
999999999
NOCYCLE;
增加的时候用cust_id_seq.nextval
⑥ pgsql怎么创建sequence
方法一:直接在表中指定字段类型为serial 类型
david=#createtabletbl_xulie(
david(#idserial,
david(#nametext);
NOTICE:"tbl_xulie_id_seq"forserialcolumn"tbl_xulie.id"
CREATETABLE
david=#
方法二:先创建序列名称,然后在新建的表中列属性指定序列就可以了,该列需int 类型
创建序列的语法:
CREATE[TEMPORARY|TEMP]SEQUENCEname[INCREMENT[BY]increment]
[MINVALUEminvalue|NOMINVALUE][MAXVALUEmaxvalue|NOMAXVALUE]
[START[WITH]start][CACHEcache][[NO]CYCLE]
[OWNEDBY{table.column|NONE}]
⑦ PLSQL中创建序列问题
这是由于select seq_test.nextval into t from al; 这个语句当中的seq_test在整个语句执行前还不存在造成的,我刚才测试了一下用变量来代替seq_test貌似还有问题,你自己也研究研究吧,我先去吃饭了,完了再想想撤。
补充:在seq_test已经存在的情况下就没有任何问题
SQL> declare
2 t number;
3 s varchar2(30):='create sequence seq_test';
4 begin
5 execute immediate 'drop sequence seq_test';
6 execute immediate s;
7 select seq_test.nextval into t from al;
8 dbms_output.put_line(t);
9 end;
10 /
1
PL/SQL procere successfully completed.
⑧ SqlServer2005中如何为表dbo_note创建一个序列
sql server 2005 没有sequence的概念
你可以用数据字典来做一个序列
最常用的是添加一个自增长字段
sql server 在后面的那个版本中增加了sequence的概念,忘记那个版本了
Codeid int identity(1,1) not null primary key,
⑨ SQL server 2008里面如何创建自动增长序列
如果是语句创建,在字段类型后面加上identity(1,1)即可
如果是设计器创建,在字段的属性中,找到标量种子双击即可
⑩ 23.下列创建序列的SQL语句:
正确答案应该选A