sql server 有哪条语句可以代替这条吗:SELECT SEQUENCENAME.NEXTVAL into COLUMNAME FROM DUAL;

janruer 2003-10-21 10:47:57
sql server 有哪条语句可以代替这条吗:SELECT SEQUENCENAME.NEXTVAL into COLUMNAME FROM DUAL;

这是一条ORACLE 中的语句 。如果没有,在SQL server中具体怎么事先类似功能呢 ?
请大家给个思路,谢谢
...全文
220 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
Coolyu0916 2003-10-21
  • 打赏
  • 举报
回复
如果要实现和SEQUENCE一样的功能最好使用标志字段
其他的方式需要自己写函数或者存储过程
janruer 2003-10-21
  • 打赏
  • 举报
回复
oracle 中SEQUENCE 是创建一个序列 ,NEXTVAL是取下一个记录的函数
TO :大力,如果不增加标志字段有什么好办法没?
标志字段可以让它不可见吗?在SQL SERVER 中?也就是让标志字段为虚的,只为排序而存在的?
welyngj 2003-10-21
  • 打赏
  • 举报
回复
IDENTITY(属性)
在表中创建一个标识列。该属性与 CREATE TABLE 及 ALTER TABLE Transact-SQL 语句一起使用。



说明 IDENTITY 属性与 SQL-DMO Identity 属性不同,后者表现列的行标识属性。


语法
IDENTITY [ ( seed , increment ) ]

参数
seed

装载到表中的第一个行所使用的值。

increment

增量值,该值被添加到前一个已装载的行的标识值上。

必须同时指定种子和增量,或者二者都不指定。如果二者都未指定,则取默认值 (1,1)。

注释
如果在经常进行删除操作的表中存在着标识列,那么在标识值之间可能会产生差距。如果这构成了问题,那么请不要使用 IDENTITY 属性。但是,为了确保未产生差距,或者为了弥补现有的差距,在用 SET IDENTITY_INSERT ON 显式地输入标识值之前,请先对现有的标识值进行计算。

如果重新使用已删除的标识值,那么请使用示例 B 中的示例代码进行检查,以获得下一个可用的标识值。请用您的表名、标识列数据类型以及(该数据类型的)最大可允许值的数值 –1 替换 tablename、column_type 和 max(column_type) – 1。

使用 DBCC CHECKIDENT 检查当前的标识值,并将其与标识列中的最大值进行比较。

当将 IDENTITY 属性与 CREATE TABLE 一起使用时,Microsoft® SQL Server™ 使用 CREATE TABLE 的 NOT FOR REPLICATION 选项替代标识列的自动增加。通常,SQL Server 给插入表中的每个新行指派一个值,该值比前面的最高值要大出某些增量。但是,如果新行是由另一个数据源复制过来的,那么标识值必须保持与其在数据源中完全相同。

示例
A. 将 IDENTITY 属性与 CREATE TABLE 一起使用
下面的示例创建一个新表,该表将 IDENTITY 属性用于获得自动增加的标识号。

USE pubs
IF EXISTS(SELECT TABLE_NAME FROM INFORMATION_SCHEMA.TABLES
WHERE TABLE_NAME = 'new_employees')
DROP TABLE new_employees
GO
CREATE TABLE new_employees
(
id_num int IDENTITY(1,1),
fname varchar (20),
minit char(1),
lname varchar(30)
)

INSERT new_employees
(fname, minit, lname)
VALUES
('Karin', 'F', 'Josephs')

INSERT new_employees
(fname, minit, lname)
VALUES
('Pirkko', 'O', 'Koskitalo')

pengdali 2003-10-21
  • 打赏
  • 举报
回复
在sqlserver里很简单,插入时不需要管它的,如上。
rocllllll 2003-10-21
  • 打赏
  • 举报
回复
问一下:Oracle中,那个语句是干什么的,实现什么功能?
pengdali 2003-10-21
  • 打赏
  • 举报
回复
SQL SERVER企业管理器-->右键你的表-->设计表-->选中你要设置标识的字段(必须是int或其他数字类型)-->下面有个属性叫“标识”的,选“是”,你可以按你的要求改一下标识种子或标识递增量,然后保存该表的设计。

代码实现举例:

create table 表(id int identity(1,1),name varchar(100))

insert 表 values('J9988')
insert 表 values('CSDNM')

select * from 表

drop table 表

22,209

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server 疑难问题
社区管理员
  • 疑难问题社区
  • 尘觉
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧