帮忙看一下下面的问题该怎么处理
if exists(select name from sysobjects where name='book_add')
drop proc book_add
go
create proc book_add
(@isbn char(16),@书名 char(26),@作者 char(8),@出版社 char(20),@价格 float,@库存量 int)
as
begin
insert into book values(@isbn,@书名,@作者,@出版社,@价格,@库存量)
end
go
exec book_add '1000','会计原理','张名','北京邮电出版社',21.5,4运行时错误提示:服务器: 消息 8101,级别 16,状态 1,过程 book_add,行 5
仅当使用了列的列表,并且 IDENTITY_INSERT 为 ON 时,才能在表 'book' 中为标识列指定显式值。
服务器: 消息 2812,级别 16,状态 62,行 1
未能找到存储过程 'book_add'。
if exists(select name from sysobjects where name='book_add')
drop proc book_add
go
create proc book_add
(@isbn char(16),@书名 char(26),@作者 char(8),@出版社 char(20),@价格 float,@库存量 int)
as
begin
insert into book values(@isbn,@书名,@作者,@出版社,@价格,@库存量)
end
go
exec book_add '1000','会计原理','张名','北京邮电出版社',21.5,4运行时错误提示:服务器: 消息 8101,级别 16,状态 1,过程 book_add,行 5
仅当使用了列的列表,并且 IDENTITY_INSERT 为 ON 时,才能在表 'book' 中为标识列指定显式值。
服务器: 消息 2812,级别 16,状态 62,行 1
未能找到存储过程 'book_add'。
--测试的表
CREATE TABLE ta(id int IDENTITY(1,1),col int)
CREATE TABLE tb(id int IDENTITY(1,1),col int)
GO--设置 IDENTITY_INSERT 属性
SET IDENTITY_INSERT ta ON
SET IDENTITY_INSERT tb ON
GO
/*======================================================*/
--2. 如果插入记录的标识值大于表的当前标识值,则SQL Server自动将新插入值作为当前标识值使用
--测试的表
CREATE TABLE tb(id int IDENTITY(1,1),col int)--强制在表中插入标识值
SET IDENTITY_INSERT tb ON
INSERT tb(id,col) VALUES(10,1)
SET IDENTITY_INSERT tb OFFINSERT tb(col) VALUES(2)
SELECT * FROM tb
/*--结果
id col
----------------- -----------
10 1
11 2
--*/
GO
/*======================================================*/
--3. 如果插入记录的标识值小于表的当前标识值,则表的当前标识值不受新插入值的影响
--测试的表
CREATE TABLE tb(id int IDENTITY(1,1),col int)
INSERT tb VALUES(1)
INSERT tb VALUES(2)--强制在表中插入标识值
SET IDENTITY_INSERT tb ON
INSERT tb(id,col) VALUES(1,11)
SET IDENTITY_INSERT tb OFFINSERT tb(col) VALUES(3)
SELECT * FROM tb
/*--结果
id col
----------------- -----------
1 1
2 2
1 11
3 3
--*/
drop proc book_add
go
create proc book_add
(@isbn char(16),@书名 char(26),@作者 char(8),@出版社 char(20),@价格 float,@库存量 int)
as
begin
set identity_insert book on
insert into book values(@isbn,@书名,@作者,@出版社,@价格,@库存量)
set identity_insert book off
end
go
exec book_add '1000','会计原理','张名','北京邮电出版社',21.5,4
insert into.....
set IDENTITY_INSERT book off
请使用Set IDENTITY_INSERT tb_name ON
仅当使用了列的列表,并且 IDENTITY_INSERT 为 ON 时,才能在表 'book' 中为标识列指定显式值这个错误是因为你的 book表中有标识列,不允许手动添加
服务器: 消息 2812,级别 16,状态 62,行 1
未能找到存储过程 'book_add'
这是因为你的存储过程没有建成功