create procedure insert_data(@NodId int, @NodName varchar(20), @Flag tinyint, @Value float)
AS BEGIN
insert into dev values(@NodId, @NodName, @Flag, @Value)
END
然后写一个简单的代码去调用它:
DECLARE @i INT
SET @i = 1
while(@i < 3)
BEGIN
exec dbo.insert_data @i, '压力传感设备', 1, 29.9
SET @i = @i+1
END
说明你表中应该有个字段dev有主键约束,而你给表插入数据没有包括该主键字段,系统会自动给该字段空值,但主键字段不允许存在两个及两个以上的空值,所以出错!你必须在插入其他字段值得时候也给主键字段插入值,或者给主键字段设置
dev int identity(1,1) 如果数据类型符合的话,这个应该也可以解决
------解决方案-------------------- create procedure insert_data(@NodId int, @NodName varchar(20), @Flag tinyint, @Value float)
AS BEGIN
insert into dev(nodid,nodname,flag,value) values(@NodId, @NodName, @Flag, @Value)
END
?
1
2
说明你表中应该有个字段dev有主键约束,而你给表插入数据没有包括该主键字段,系统会自动给该字段空值,但主键字段不允许存在两个及两个以上的空值,所以出错!你必须在插入其他字段值得时候也给主键字段插入值,或者给主键字段设置
dev int identity(1,1) 如果数据类型符合的话,这个应该也可以解决