消息 8101,级别 16,状态 1,过程 BackBuyApply,第 16 行 仅当使用了列列表并且 IDENTITY_INSERT 为 ON 时,才能为表

qq_32320747 2018-03-14 08:55:52

消息 8101,级别 16,状态 1,过程 BackBuyApply,第 16 行
仅当使用了列列表并且 IDENTITY_INSERT 为 ON 时,才能为表'ThisHQ_back.dbo.BuyApply'中的标识列指定显式值。
      update BuyApply
set Apply1='请问',ApplyUserID1='1',ApplyUser1='5',
ApplyMobile1='138',
ApplyTime1=getdate(),isApply=1
where ApplyID='16'

ALTER TRIGGER [dbo].[BackBuyApply]  
ON [dbo].[BuyApply]
AFTER DELETE,UPDATE
AS
BEGIN
-- SET NOCOUNT ON added to prevent extra result sets from
-- interfering with SELECT statements.
SET NOCOUNT ON;

-- Insert statements for trigger here
insert into [This_back].[dbo].[BuyApply]
select getdate() as backtime,*
from deleted
END

求原因,就算我是全部都写了也是一样?
UPDATE [This].[dbo].[BuyApply]
SET [ApplyDeptID] =1
,[ApplyDeptName] =1
,[Apply1] = 1
,[ApplyUserID1] = 1
,[ApplyUser1] = 1
,[ApplyMobile1] = 1
,[ApplyTime1] =1
,[isApply] = 1
,[Apply2] = 1
,[ApplyUserID2] =1
,[ApplyUser2] = 1
,[ApplyMobile2] = 1
,[ApplyTime2] = 1
,[Apply3] = 1
,[ApplyUserID3] = 1
,[ApplyUser3] = 1
,[ApplyMobile3] = 1
,[ApplyTime3] = 1
,[Apply4] = 1
,[ApplyUserID4] = 1
,[ApplyUser4] =1
,[ApplyMobile4] = 1
,[ApplyTime4] = 1
,[Apply5] = 1
,[ApplyUserID5] = 1
,[ApplyUser5] = 1
,[ApplyMobile5] = 1
,[ApplyTime5] = 1
,[Apply6] = 1
,[ApplyUserID6] =1
,[ApplyUser6] = 1
,[ApplyMobile6] = 1
,[ApplyTime6] = 1
,[Apply7] = 1
,[ApplyUserID7] = 1
,[ApplyUser7] = 1
,[ApplyMobile7] = 1
,[ApplyTime7] = 1
,[isApply2] = 1
,[isApply3] = 1
,[isApply4] = 1
,[isApply5] = 1
,[isApply6] = 1
,[isApply7] = 1
WHERE ApplyID='16'
GO


...全文
810 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
吉普赛的歌 2018-03-14
  • 打赏
  • 举报
回复
--老老实实列出所有的列名,有那么困难吗?
INSERT INTO [This_back].[dbo].[BuyApply](字段1,字段2,字段3……)
select getdate() as 字段1,字段2,字段3……
from DELETED


即使你的字段多, 列出所有字段也是非常容易的:
zyy1111111 2018-03-14
  • 打赏
  • 举报
回复
看一下你的Thisback有没有自增长主键设置值,这个不能设置值
Foliole 2018-03-14
  • 打赏
  • 举报
回复
你问题是出在insert,不是update,把全部除了自增列的列名全部列出来就可以了。如果想插入自增列值,就在inset语句前面写: set IDENTITY_INSERT table on
二月十六 2018-03-14
  • 打赏
  • 举报
回复
试试插入时把列名写全
insert into  [This_back].[dbo].[BuyApply](字段名.....)
    select getdate() as backtime,* 
    from deleted
qq_32320747 2018-03-14
  • 打赏
  • 举报
回复
引用 1 楼 sinat_28984567 的回复:
是给自增长主键设置值了,需要这样做吗?

我没有设置值啊?
二月十六 2018-03-14
  • 打赏
  • 举报
回复
是给自增长主键设置值了,需要这样做吗?

27,579

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server 应用实例
社区管理员
  • 应用实例社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧