2011-08-13 44 views
0
CREATE PROCEDURE dbo.usp_InsertUpdateVehicleWheel 
(
    @vehicleWheelId int, 
    @vehicleWheelName varchar(20) 
) 
AS 
    IF @vehicleWheelId = 0 
     INSERT INTO VehicleWheel (VehicleWheelId, VehicleWheelName) 
     VALUES (@vehicleWheelId, @vehicleWheelName) 
    else 
     UPDATE VehicleWheel 
     SET VehicleWheelName = @vehicleWheelName 
     WHERE VehicleWheelId = @vehicleWheelId 

    RETURN---------- 

当我想插入含有表(VehicleWheel)属性相关插入在表

  1. VehicleWheelId int
  2. VehicleWheelName varchar(20))

其中Id被自动生成和欲插入名,则会发生错误:

当IDENTITY_INSERT设置为OFF时,无法在表 'VehicleWheel'中插入标识列的显式值。

plz向我怎么克服这种错误的答复...

感谢你.......

回答

3

错误说清楚什么是错在INSERT列(IDENTITY列VehicleID列表)...

改变插入语句:

Insert into VehicleWheel (VehicleWheelName) values (@vehicleWheelName) 

所以SP现在是:

CREATE PROCEDURE dbo.usp_InsertUpdateVehicleWheel 
(
    @vehicleWheelId int, 
    @vehicleWheelName varchar(20) 
) 

AS 

    if @vehicleWheelId=0 
      INSERT INTO VehicleWheel (VehicleWheelName) VALUES (@vehicleWheelName) 
    ELSE 
    Update VehicleWheel set 
    VehicleWheelName = @vehicleWheelName 
    where VehicleWheelId = @vehicleWheelId 
    RETURN---------- 
1

您需要设置IDENTITY INSERT为ON时,我不知道,那感觉就像错误是显而易见的

,你可以用这个做到这一点:

SET IDENTITY_INSERT table ON 

,其中表您的餐桌