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