Access 2つのテーブルの同期

本当は、SQLserverで同期をとりたかったが、そのスキルがまだない。

わかったら後ほど記載していきます。

Accessのクエリー2段でテーブル同士の同期ができるので記載しておきます。

このケースは、マスターテーブルに、データを追加したときに、リレーションしている作業用テーブルにも主キーあたりを同期させて追加させておきたいケースが発生する。
その時用に使えるテクニックだ。

1.不一致クエリウィザードでテーブル1にしかないレコードを抽出するクエリーを作成。
・抽出するテーブル:テーブル1
・比較するテーブル:テーブル2
・共通するフィールド:主キーとか
・表示するフィールド:追加に必要なフィールド全部
2.このクエリを元に追加クエリーを作成。

追加クエリーで追加すると同期したいテーブルにその都度追加されて2重になるように感じてしまうが、実際は、不一致クエリを通しているので、追加されたデータだけのレコードが増えるだけで済む。

リレーションをしているので、メインのテーブルからレコードを削除や更新すれば、同期しているテーブルも同じように連動してくれる。

SQLserver 2つのテーブルの差分を追加

テーブルA と テーブルBがあったとして、両テーブルを比較して、テーブルAにあってテーブルBに無い時に、テーブルBにレコードを追加していくクエリ

※比較する列は、G列とF列とする。

INSERT into dbo.テーブルB
SELECT ‘20161129’,生徒CD,スクールCD,ヨヤクルCD,0
FROM dbo.テーブルA
WHERE NOT EXISTS(
select ‘x’
from dbo.テーブルB
where G列 = dbo.テーブルA.G列
AND F列 = dbo.テーブルA.F列

SQLserver テーブルの設計変更ができない

「SQL Server 2008 Express」で既存のテーブルのデザイン(設計)に変更を加えて、変更を保存しようとすると以下のメッセージが表示されて保存できない。

メッセージ:
変更の保存が許可されていません。行った変更には、次のテーブルを削除して再作成することが必要になります。

再作成できないテーブルに変更を行ったか、テーブルの再作成を必要とする変更を保存できないようにするオプションが有効になっています。

【対応策】
「Microsoft SQL Server Management Studio」を起動し、[ツール]メニューの[オプション]をクリックする。

[オプション]ダイアログボックスが表示されるので、画面左のツリーから[デザイナ]を選択し、[+]をクリックする。

[テーブル デザイナおよびデータベース デザイナ]をクリックし、画面右の[テーブルの再作成を必要とする変更を保存できないようにする]オプションをオフにする。

HTML テーブルの線を消す

ホームページを作成していて、写真と文字を合わせるためにテーブルを使う時がある。その時にテーブルの枠線を透明にしたい場合もある。その方法。
<table style=”border-style: none;” border=”1″>

<tbody>
<tr>
<td style=”border-style: none;”>テスト</td>
<td style=”border-style: none;”>テスト</td>
<td style=”border-style: none;”>テスト</td>
<td style=”border-style: none;”>テスト</td>
</tr>
</tbody>
</table>

 

つまりは、

style=”border-style: none;”

style=”border-style: none;”

を突っ込めばいいようだ。

SQLserver テーブルの変更を加えた時のエラー

テーブルで列の追加をして保存をしようとすると、[変更の保存が許可されていません~]とメッセージができて変更ができない。

一度作成したテーブルには変更できないような設定があるようだ。

ツール⇒[オプション]→[デザイナー]→[テーブル デザイナーおよびデータベース デザイナー]にテーブルの再作成を必要とする変更を保存できないようにする(S)
がありましたので、チェックを外す事でテーブル デザイナーから変更が可能になる。

しかし、注意が必要なようだ。

このオプションを無効にしていると、テーブルが再作成される際に既存の変更の追跡情報が削除されます。
そのため、このオプションを無効にしてこの問題を回避することはお勧めしません。

とのこと。

phpmyadminにてエラー表示

「This table does not contain a unique column. Grid edit, checkbox, Edit, Copy and Delete features are not available.」というメッセージが表示。簡単に訳すと「ユニークキーなどのユニークなカラムを作成しないと編集や削除はできませんよ」という内容。

解決策はメッセージのとおり、とりあえずユニークキーを作成すれば良い。

メッセージが出たテーブルの「構造」タブを開く
カラムの追加位置を指定して「実行」
カラム名を適当に付ける(keyやidなど)
A_Iにチェックをつけ「保存する」
再度「構造」タブから先ほど作成したカラムにある「ユニーク」をクリック

以上でとりあえずユニークキーが完成。ちなみにA_IとはAUTO_INCREMENTの略で、小さい数字から順番にユニークな数値を自動で入れてくれる便利機能。