Question

hiyasuda_SQLazure on Mon, 20 Aug 2012 02:06:32


SQLState = 37000, NativeError = 40054
Error = [Microsoft][SQL Server Native Client 10.0][SQL Server]Tables without a c
lustered index are not supported in this version of SQL Server. Please create a
clustered index and try again.


Sponsored



Replies

hiyasuda_SQLazure on Mon, 20 Aug 2012 02:36:42


以下のように対処しましたが、「bcp コピーin」が成功しません。最後に質問があります。

1. SQL Azure上の管理ポータルで当該テーブルを削除する。

2. SQL Azure上の管理ポータルで、再度下記のように新規にテーブル定義する。

CREATE TABLE [QND_A] (
        [タスク名] [varchar] (255) NULL ,
        [ホストID] [varchar] (255) NOT NULL
            PRIMARY KEY CLUSTERED,
        [インベントリ取得日] [varchar] (255) NULL ,
        [ソフトウェア名] [varchar] (255) NULL ,
        [登録パス] [varchar] (255) NULL ,
        [インストールパス] [varchar] (255) NULL
)

”コマンドは正常に完了しました。”

3. bcpコマンドでフォーマットファイル(non-XMLファイル)を作成  for character data

bcp SAMQND.dbo.QND_A format nul -c -f D:\test\bcp201208182.fmt -S ot42kj48yt.database.windows.net -U saadmin@ot42kj48yt

本bcpコマンド実行後、bcp201208181.fmtの内容は以下となります。

10.0
6
1       SQLCHAR             0       255     "\t"     1     タスク名               SQL_Latin1_General_CP1_CI_AS
2       SQLCHAR             0       255     "\t"     2     ホストID             SQL_Latin1_General_CP1_CI_AS
3       SQLCHAR             0       255     "\t"     3     インベントリ取得日     SQL_Latin1_General_CP1_CI_AS
4       SQLCHAR             0       255     "\t"     4     ソフトウェア名         SQL_Latin1_General_CP1_CI_AS
5       SQLCHAR             0       255     "\t"     5     登録パス               SQL_Latin1_General_CP1_CI_AS
6       SQLCHAR             0       255     "\r\n"   6     インストールパス       SQL_Latin1_General_CP1_CI_AS

4. 上記の項3で作成したフォーマットファイルを使用してbcpコマンドでSQL Azure上のデータベースにインポートします。

bcp SAMQND.dbo.QND_A in D:\test\QND_A.CSV -f D:\test\bcp201208182.fmt -S ot42kj48yt.database.windows.net -U saadmin@ot42kj48yt

5. 上記の項4の実行結果は以下の通りです。

コピーを開始しています...
SQLState = 22001, NativeError = 0
Error = [Microsoft][SQL Server Native Client 10.0]String data, right truncation

0 行コピーされました。
ネットワーク パケット サイズ (バイト): 4096
クロック タイム (ミリ秒) 合計     : 781

6. 上記の項4のフォーマットbcp201208181.fmtの意味がよくわかりません。

csvファイル上は、"\t"と "\r\n" に対応する文字はどのようにすべきですか。

このフォーマットに対応するcsvファイルのデータの成功事例が欲しいのですが。

アドバイスをお願いします。

hiyasuda_SQLazure on Thu, 23 Aug 2012 01:30:22


試行錯誤の結果、下記の2つのエラーは解決しました。

1.SQLState = 37000, NativeError = 40054

2.SQLState = 22001, NativeError = 0

個別に対処方法の概略を示します。

1.SQLState = 37000, NativeError = 40054
Error = [Microsoft][SQL Server Native Client 10.0][SQL Server]Tables without a c
lustered index are not supported in this version of SQL Server. Please create a
clustered index and try again.

対処方法は以下です。

(1)Windows Azure 管理ポータルで、CLUSTEREDインデックスオプション指定して、QND_Aテーブルを新規に作成

(2)bcpコマンドでフォーマットファイル(non-XMLファイル)を作成  for character data

この結果、上記エラーは発生せず、正常にフォーマットファイルが作成された。

2.SQLState = 22001, NativeError = 0
Error = [Microsoft][SQL Server Native Client 10.0]String data, right truncation

対処方法は以下です。

(1)フォーマットファイルは以下。文字コードはANSIとする。

10.0
6
1       SQLCHAR             0       255     "\t"     1     タスク名               SQL_Latin1_General_CP1_CI_AS
2       SQLCHAR             0       255     "\t"     2     ホストID             SQL_Latin1_General_CP1_CI_AS
3       SQLCHAR             0       255     "\t"     3     インベントリ取得日     SQL_Latin1_General_CP1_CI_AS
4       SQLCHAR             0       255     "\t"     4     ソフトウェア名         SQL_Latin1_General_CP1_CI_AS
5       SQLCHAR             0       255     "\t"     5     登録パス               SQL_Latin1_General_CP1_CI_AS
6       SQLCHAR             0       255     "\r\n"   6     インストールパス       SQL_Latin1_General_CP1_CI_AS

(2)CSVファイルは以下。 区切り記号は、“タブ”制御文字とする。文字コード系をANSIとする。

"SAMINVO" "8158ad82c83d9f1e75a8a46fef96b6ca" "2012/06/08 17:01:12" "Adobe Photoshop 7.0" "C:\WINDOWS\ISUN0411.EXE -f C:\Program Files\Adobe\Photoshop 7.0\Uninst.isu  -c C:\Program Files\Adobe\Photoshop 7.0\Uninst.dll " "C:\Program Files\Adobe\Photoshop 7.0"
"SAMINVO" "8158ad82c83d9f1e75a8a46fef96b6ca" "2012/06/08 17:01:12" "Canon IJ Network Scan Utility" "C:\Program Files\Canon\Canon IJ Network Scan Utility\CNMNSU.EXE" ""

(3)bcpコマンドを実行する。

C:\Users\yasuda4>bcp SAMQND.dbo.QND_A in C:\test\QND_A.CSV -f C:\test\bcp2012081
84.fmt -S yyyyyyyy.database.windows.net -U xxx@yyyyyyyy
パスワード:

コピーを開始しています...

2 行コピーされました。
ネットワーク パケット サイズ (バイト): 4096
クロック タイム (ミリ秒) 合計     : 703    平均 : (2.84 行/秒)

以上で解決しました。