缺少标识符

[code="java"][/code][b][/b](—)
GO
/****** 对象: Table [dbo].[BS_functions_menu] 脚本日期: 11/16/2010 16:17:07 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
SET ANSI_PADDING ON
GO
CREATE TABLE [dbo].[BS_functions_menu](
[function_id] [bigint] IDENTITY(1,1) NOT NULL,
[function_name] [varchar](64) COLLATE Chinese_PRC_CI_AS NOT NULL,
[function_code] [varchar](64) COLLATE Chinese_PRC_CI_AS NOT NULL,
[function_level] [int] NULL,
[assembly_name] [varchar](576) COLLATE Chinese_PRC_CI_AS NULL,
[function_type] [varchar](32) COLLATE Chinese_PRC_CI_AS NOT NULL,
[ordering] [int] NOT NULL,
[state] [varchar](32) COLLATE Chinese_PRC_CI_AS NOT NULL,
[remark] [varchar](128) COLLATE Chinese_PRC_CI_AS NULL,
[parent_func_id] [bigint] NULL,
CONSTRAINT [PK_BS_FUNCTIONS_MENU] PRIMARY KEY NONCLUSTERED
(
[function_id] ASC
)WITH (IGNORE_DUP_KEY = OFF) ON [PRIMARY]
) ON [PRIMARY]

------------------
(二)
GO
/****** 对象: Table [dbo].[BS_functions_menu] 脚本日期: 11/16/2010 16:40:35 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
SET ANSI_PADDING ON
GO
CREATE TABLE [dbo].[BS_functions_menu](
[function_id] [bigint] NOT NULL,
[function_name] [varchar](64) COLLATE Chinese_PRC_CI_AS NOT NULL,
[function_code] [varchar](64) COLLATE Chinese_PRC_CI_AS NOT NULL,
[function_level] [int] NULL,
[assembly_name] [varchar](576) COLLATE Chinese_PRC_CI_AS NULL,
[function_type] [varchar](32) COLLATE Chinese_PRC_CI_AS NOT NULL,
[ordering] [int] NOT NULL,
[state] [varchar](32) COLLATE Chinese_PRC_CI_AS NOT NULL,
[remark] [varchar](128) COLLATE Chinese_PRC_CI_AS NULL,
[parent_func_id] [bigint] NULL
) ON [PRIMARY]

比较建立两个表的sql语句可以看出,(二)中没有标识,所以才会出错

SET IDENTITY_INSERT BS_functions_menu ON
begin tran
插入的sql语句...
IF @@ERROR = 0
COMMIT TRAN
ELSE
ROLLBACK TRAN
SET IDENTITY_INSERT BS_functions_menu Off
是在插入前把主键自增的约束去掉,插入完成后,在更改为原来的主键自增。如果在插入一条记录别最大的id大一的话
是没有问题了。
-------------------------------------------------------------------------------------
还有一种方法设置插入数据后重新设置标识列自增;
--重新设置当前标识值,新标识值为当前最大标识
declare @max_id int
SET @max_id = (SELECT MAX(function_id) FROM BS_command_functions)
DBCC CHECKIDENT(BS_command_functions, RESEED, @max_id)
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值