none
数据库中Identity的问题 RRS feed

  • 问题

  • 我创建了一个表,其中主键是identity的,现在我想建一个insert到这个表的存储过程。然后运行这个存储过程的时候,老是说IDENTITY_INSERT为off时怎么样怎么样,后来我试了试这个
    SET ANSI_NULLS ON
    GO
    SET QUOTED_IDENTIFIER ON
    GO
    SET IDENTITY_INSERT [Group]ON
    GO

    -- =============================================
    -- Author:  <Author,,Name>
    -- Create date: <Create Date,,>
    -- Description: <Description,,>
    -- =============================================

    CREATE PROCEDURE Pr_InsertIntoGroup
    AS
    BEGIN
    insert into [Group]
    (GroupID) VALUES('')

    END
    GO
    还是不成……

    • 已移动 Sheng Jiang 蒋晟 2009年9月25日 15:34 SQL问题 (发件人:ASP.NET 与 AJAX)
    2009年9月25日 2:19

答案

  • SET IDENTITY_INSERT  [Group]  ON
    SET IDENTITY_INSERT  [Group]  OFF
    注意空格
    你如果自己填写自动增长之类的字段,要输入不同的内容
    操作玩之后再设置回去



    SET ANSI_NULLS ON
    GO
    SET QUOTED_IDENTIFIER ON
    GO

    CREATE PROCEDURE InserData
    AS
    BEGIN
    DELETE FROM [Group]
    SET IDENTITY_INSERT [Group] ON
    INSERT [Group](id,Name) Values(1,'xxx')
    INSERT [Group](id,Name) Values(2,'xxx')
    SET IDENTITY_INSERT [Group] OFF

      
    END
    GO



    【孟子E章】
    • 已标记为答案 fangzhijie 2009年9月25日 3:20
    2009年9月25日 2:58

全部回复

  • 我发现在修改这个存储过程的时候,SET IDENTITY_INSERT [Group]ON这句话就没了,我的声明方法不对吧?应该怎样做呢?
    2009年9月25日 2:21
  • SET IDENTITY_INSERT  [Group]  ON
    SET IDENTITY_INSERT  [Group]  OFF
    注意空格
    你如果自己填写自动增长之类的字段,要输入不同的内容
    操作玩之后再设置回去



    SET ANSI_NULLS ON
    GO
    SET QUOTED_IDENTIFIER ON
    GO

    CREATE PROCEDURE InserData
    AS
    BEGIN
    DELETE FROM [Group]
    SET IDENTITY_INSERT [Group] ON
    INSERT [Group](id,Name) Values(1,'xxx')
    INSERT [Group](id,Name) Values(2,'xxx')
    SET IDENTITY_INSERT [Group] OFF

      
    END
    GO



    【孟子E章】
    • 已标记为答案 fangzhijie 2009年9月25日 3:20
    2009年9月25日 2:58