问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

sql server2000 触发器insert 的问题?

发布网友 发布时间:2022-04-11 18:32

我来回答

6个回答

热心网友 时间:2022-04-11 20:01

看触发器问题好像出在test这个表上呢
建议检查一下test表的id是否是自增的,看是否是提示有问题

--===============================

测试了一下,貌似如果test表有问题的话,会提示test,看来不是test的问题

楼主的触发器是 alter啊,不是create,确认是已经创建上了对吧?

================================

insert into vw_test (id,name) values(0,'jboss')

这样写它不会报错,id也是自增的,不管你插的id为何值,它都依次递增。

这个如果没有问题,那很显然楼主你的vw_test里的id不是自增的

测试

create table vv_test
(
id int identity(1,1),
name varchar(10)
)
create table test
(
id int not null,
name varchar(10)
)
create trigger t_vv_test on vv_test
instead of insert
as
declare @name varchar(10)
begin
select @name = name from inserted
insert into test(name) select @name
end
insert into vv_test(id,name) select 0,'jpa'

--提示

Msg 544, Level 16, State 1, Line 1
当 IDENTITY_INSERT 设置为 OFF 时,不能为表 'vv_test' 中的标识列插入显式值。

--id自增,会有错误提示,楼主确认一下吧

热心网友 时间:2022-04-11 21:19

SQL帮助上有:
引用具有 INSTEAD OF INSERT 触发器的视图的 INSERT 语句必须为每个不允许为空的视图列提供值。这包括引用不能为其指定输入值的基表列的视图列:
1.基表中的计算列。
2.IDENTITY INSERT 为 OFF 的基表中的标识列。
3.具有 timestamp 数据类型的基表列。
因此,对于自增长列,如果是表,是不允许为其赋值,但如果是视图,则必须为其赋值。

热心网友 时间:2022-04-11 22:54

我想应该是属性ID默认值设为不能为空了,建议查看下ID结构并设为允许为空

=====================祝君生活愉快!=====================
==============希望我的回答能给你带来点点帮助==================

热心网友 时间:2022-04-12 00:45

你是两张表
确认下VV_TEST表的ID是否是自增列?
或者直接测试下
insert into vv_test(id,name)values(1,'test')
insert into test(id,name)values(1,'test')

热心网友 时间:2022-04-12 02:53

看一下TEST表的ID具体是什么类型,是否真的是自增的。
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
如何将一个文件排在文件夹的第一个? 试管婴儿胚胎分级 试管婴儿胚胎分级8优代表什么 成人高考是成绩出来之后再填志愿吗 成考有必要报第二志愿吗 成人高考被第一志愿录取就不能选择第二志愿吗,分数什么学校都能进,老... 成教可以填报二批志愿吗? 高压电线是什么钢丝 地下水资源会枯竭吗 济南受污染的原因 @@identity也会有产生重复值,是bug? SQL SERVER after触发器inserted表中的 identity列值是否可以引用,是否正确? mssql约束,假如我有一个表有两个字段,我要让这两个字段的组合不能为相同怎么做,请看详细描述。 sqlserver 中 创建一个表 有两个datetime 字段 对一个字段的约束是 该字段里的时间必须完于另外一个字... sqlserver中约束怎么引用其他的列 SQLSERVER一个字段只可以写两个值怎么写约束 SQLServer里有TEST,TEST2两个表,要创建一个触发器,删除TEST表的同时删除TEST2中相同的数据,请问怎么写 SQLSERVER 如何添加0或1的约束,默认是0 sqlserver 检查约束 sqlserver 5种约束表示什么意思 sqlserver 给建好的表增加约束条件出问题 sql 语句 查询 为空的 数据库删除重复数据保留一条数据 MSSQL提示以前的某个程序安装以挂起 老提示未与信任 SQLSERVER 连接相关联 打开电脑,弹出对话框提示sqlserver.exe 错误?? eclipse连接sqlserver错误提示 如何解决SQL 2005连接失败问题,提示SQL server 不存在或是拒绝访问 sqlserver提示超过最大前缀 我使用oledb连接sqlserver数据库时出现以下提示是怎么回事 SqlServer identity问题 sql2005触发器问题,在insert触发器中无法进行对另外一个表的插入操作 为什么我用SELECT identity取ID一直是空 创建insert触发器显示列名无效 SQL的Insert触发器实现 调用scope_identity返回值 sqlserver数据库建立insert触发器后对象表查不到新增数据,但是把该表的insert触发器删除后又可以查到 SQL2000每天都备份数据库,日志还有用吗 开始-运行的实用命令。 mssql clr 执行命令4000长度 如何利用sqlserver2014提高数据库读写性能 优化级联删除的存储过程SqlServer sqlserver中存放的数据包含<br/>,可是在asp.net(mvc3)输出时没效果,直接输出<br/>。如何实现换行? SQL server数据库中建一个临时表,20分钟后使这个临时表自动删除!该怎么做? 如何在sql server中删除某个表1000行以后的全部记录,给具体代码 线性表 查找 在指定范围内 并删除的代码 sql if语句出错:查询数据库中是否有临时表#temp1和#temp2,有的话删除 然后执行再创建临时表,代码如下 运行SQL语句怎样把查找出来的结果删除求高手指导在线等!? 线性表,栈的创建,查找,删除等等基本操作的代码。刚学不懂,最好能有步骤解释的。谢谢啊。。 用Java语言编写数据结构中顺序表的插入删除查找代码并实现