MS SQL の新しいテーブルに貼り付けたい Excel の行がたくさんあります。簡単な方法はありますか?
10 に答える
SQL Server Management Studio をお持ちの場合は、マウスを使用して Excel からコピーし、Management Studio のテーブルに貼り付けるだけです。ただ
- 貼り付け先のテーブルに移動します。
- 「上位 200 行の編集」を選択します。
- 任意の場所を右クリックし、[貼り付け] を選択します。
これを行う前に、Excel と Management Studio の間で列を一致させる必要があります。また、Management Studio のテーブル デザイナーを使用して、編集不可能な列を最後(一番右) に配置する必要があります。
手順全体は数秒で完了し (セットアップと開始- 必ずしも実行する必要はありません)、SQL ステートメントは必要ありません。
私は過去にこのテクニックをうまく使っています:
Excel を使用して SQL Server の挿入物を生成する
(...) 列をスキップして (またはメモに使用して)、次の式のようなものを入力します。
="insert into tblyourtablename (yourkeyID_pk, intmine, strval) values ("&A4&", "&B4&", N'"&C4&"')"
これで、主キー (PK)、整数、および Unicode 文字列を含むテーブルの挿入ステートメントが作成されました。(...)
今後の参考のために:
そうすることで、ExcelシートからSQLテーブルにデータをコピーして貼り付けることができます。
- Excelでデータを選択し、Ctrl + Cを押します
- SQL Server Management Studio でテーブルを右クリックし、[上位 200 行の編集] を選択します。
- 一番下までスクロールし、行ヘッダーをクリックして空の行全体を選択します
- Ctrl + Vを押してデータを貼り付けます
注: 多くの場合、テーブルには、自動生成/増分 ID を持つ ID 列である最初の列があります。データを貼り付けると、Excel で選択した左端の列が SSMS の左端の列に挿入され、ID 列にデータが挿入されます。これを回避するには、SSMS でその列をスキップするために、選択の左端に空の列を保持します。これにより、SSMS は自動生成された ID である既定のデータを挿入します。さらに、スキップする列と同じ序数の Excel シート選択の位置に空の列を配置することで、他の列をスキップできます。これにより、SSMS はデフォルト値 (またはデフォルト値が指定されていない場合はNULL ) を挿入します。
最も簡単な方法は、insert ステートメントの構文を生成する計算列を XLS で作成することです。次に、これらの挿入をテキスト ファイルにコピーし、SQL で実行します。他の代替手段は、Excel 用のデータベース接続アドオンを購入し、VBA コードを記述して同じことを達成することです。
一部のデータベースは、exelからエクスポートできるCSV(カンマ区切り値)ファイルからデータをインポートできると思います。または、少なくともcsvパーサーを使用してデータベースにインポートするのは非常に簡単です(自分の言語用のものを見つけてください。自分で作成しようとしないでください-見た目よりも難しいです)。
私は MS SQL に詳しくありませんが、MS SQL が直接サポートされていても驚かないでしょう。
いずれにせよ、Exel シートとデータベース テーブルの構造が類似している必要があると思います。
インターフェイスが最後に使用したように機能する場合は、Excel で領域を選択してコピーし、SQL Server を開いて、Access の場合と同じようにデータをテーブルに貼り付けることができます。
または、Excel と SQL Server の間に ODBC リンクを設定することもできます。
SSMSでエクスポート/インポートウィザードを使用しないのはなぜですか?