Register  |  LOGIN

CMSならDotNetNuke!高機能かつフリーのCMSです。

 

 DotNetNuke 対応ホスティングサービスに、
at link 専用サーバサービス」を追加

掲示板

DNNに関する情報共有はこちらからどうぞ!

DotNetNuke.jp 掲示板は、すべての DotNetNuke ユーザーのための情報共有の場です。

単に質問・回答の場ではありませんし、回答義務もございません。
運営メンバーも含め、DotNetNuke を日々学んでいる状況です。
質問をする場合は、まずインターネットなどで自分自身でお調べいただき、その情報を共有する事をこころがけてください。

>>当掲示板に書き込みいただくには、ユーザー登録が必要です。( ログイン・ご登録はこちら )
>>プライバシーポリシーについてはこちらをご覧ください。
 
  dotnetnuke.jp bbs  一般  インストール  4.09.03にバージョンアップオブジェクト名 'dbo.Files' およびインデックス名 'IX_FileName' に重複したキーが見つかった
Previous Previous
 
Next Next
New Post 5/28/2009 5:26 PM
  なっちゃん
39 posts
No Ranking


4.09.03にバージョンアップオブジェクト名 'dbo.Files' およびインデックス名 'IX_FileName' に重複したキーが見つかった 

すみません4.9.3バージョンアップ(3)です。

4.03.01.logにつぎのエラーがありました。

System.Data.SqlClient.SqlException: オブジェクト名 'dbo.Files' およびインデックス名 'IX_FileName' に重複したキーが見つかったので、CREATE UNIQUE INDEX ステートメントは終了しました。重複したキーの値は (0, m_title_01.gif) です。
制約を作成できませんでした。以前のエラーを調べてください。
ステートメントは終了されました。

/* add unique constraint to Files table */
IF NOT EXISTS (select * from dbo.sysobjects where id = object_id(N'dbo.[IX_FileName]') and OBJECTPROPERTY(id, N'IsConstraint') = 1)
BEGIN
  declare @FolderID int
  declare @FileName nvarchar(100)
  declare @LastFileName nvarchar(100)
  declare @FileID int
  declare @MinFileID int

  select @FolderID = min(FolderID)
  from dbo.Folders
  while @FolderID is not null
  begin 
    /* check for duplicate Filenames */
    select @FileName = null
    select @FileName = FileName
    from dbo.Files
    where FolderID = @FolderID
    group by FileName
    having COUNT(*) > 1
 
    /* if duplicates exist */
    while @FileName is not null
    begin
      /* iterate through the duplicates */
      select @FileID = min(FileID)
      from dbo.Files
      where FolderID = @FolderID
      and FileName = @FileName

      /* save min FileID */
      select @MinFileID = @FileID

      while @FileID is not null
      begin
        if @FileID <> @MinFileID
        begin
          /* remove duplicate file */
          delete
          from dbo.Files
          where FileID = @FileID
        end

        select @FileID = min(FileID)
        from dbo.Files
        where FolderID = @FolderID
        and FileName = @FileName
        and FileID > @FileID
      end

      /* save last FileName */
      select @LastFileName = @FileName

      /* check for duplicate Filenames */
      select @FileName = null
      select @FileName = FileName
      from dbo.Files
      where FolderID = @FolderID
      and FileName <> @LastFileName
      group by FileName
      having COUNT(*) > 1
    end

    select @FolderID = min(FolderID)
    from dbo.Folders
    where FolderID > @FolderID
  end
  
  ALTER TABLE dbo.Files ADD CONSTRAINT
    IX_FileName UNIQUE NONCLUSTERED
    (
      FolderID,
      FileName
    ) ON [PRIMARY]
END

データベースを見ると確かにFilesテーブルでm_title_01.gifが重複してました。手動で削除するしかないでしょうか?

 
Previous Previous
 
Next Next
  dotnetnuke.jp bbs  一般  インストール  4.09.03にバージョンアップオブジェクト名 'dbo.Files' およびインデックス名 'IX_FileName' に重複したキーが見つかった

掲示板ご利用のためのご案内

ログイン
すでに登録済みの方は、
上のボタンからログインを
お願いします。
登録
ユーザー登録がまだの方は、
上の「登録する」ボタンをクリックし、
登録画面にて必要事項をご入力の上、
ご登録ください。