2010年7月21日水曜日

[他]FKのみつけかた(SQLServer)

先日、あまりかかわりのないシステムの環境構築のお手伝いとして、他のDBサーバよりマスタ関係を移行する手伝いをしました。
2つのDBサーバは、一部テーブル構成が異なる(移行先が若干古い)ため、構成の変更を行いました。
その後、リンクサーバを設定し、データを消してからSQLでデータをコピーするという方法をとりました。

で、リンクサーバ設定が完了し、マスタ系のテーブルをTruncateしようとすると、FKがあるので削除不可的なメッセージが表示されました。しかし、あまりかかわりのないシステムであった為、どのテーブルにFKが設定されているのかよくわかりませんでした。

設計書のありかを聞くのも面倒だったし、期待する資料は無い。といわれる可能性があったので、SQLServerにて確認する方法を調べてみると、

 sp_help 'テーブル名'

で調べられることがわかりました。ということで先にFKを設定しているテーブルを削除し、事なきを得ました。

2010年7月20日火曜日

[SQL]一時的に制約を無効化する

データ移行などで、一時的に制約を無視したい場合があります。SQLサーバでは、「no check constraint SQLServer」で一時的に制約を無視することができます。制約およびトリガを無効にする

制約に沿わないデータが合ったとしても、制約を元に戻せます。そのため、データ登録後整合性のチェックをする必要がありそうです。

2010年7月16日金曜日

[Ecxel]0を表示しないようにする

Exceで値が0の場合、自動的に表示しない(見えないようにする)ようにするには、条件付書式設定を使えばいいのですが、その他の方法として、[オプション]→[表示]→ゼロ値(Z)のチェックをはずすことにより、全体的に0を表示しないようにできるようです。あぁしりませんでした。

2010年7月13日火曜日

[Excel]Excelの改行コードはLFのみ

Excelのセル内には改行を入れることができますが、その改行コードはLFのみのようです。
知りませんでした。マクロなどで変換や判定する場合は要注意ですね。

2010年7月11日日曜日

[他]SQLServerでテーブルに設定されているインデックスを確認する方法

sp_helpindexという関数を実行すると、テーブルに設定されているインデックスとその種類がわかります。
コードはこんな感じ。

sp_helpindex 't_test01'

--こんな感じで表示される
/*
index_name    index_description    index_keysIX_T_TEST01
nonclustered located on PRIMARY    TEXT1PK_T_TEST01
clustered, unique, primary key located on PRIMARY    ID
*/

2010年7月7日水曜日

[SQL]SqlServerで8000byteを超えるフィールドを扱う

SqlServerで8000byteを超えるフィールドを扱うばあい、varchar(max)と定義すればよいそうです。
知りませんでした。。。

2010年7月6日火曜日

[他]Vista PremiumでもIISが動く?

先日修理に出していたマシンが、昨日かえって来ました。ということで、本日早速Visual Studio(Expressだけど...)をインストールしました。C#とSQLServerをインストールし、VWDをインストールしようとしてところ、「Web PI のダウンロード ページへ」なる見慣れないリンクが。。。

先に進んでいくと、「Microsoft Web Platform Installer」という機能で、さまざまなあアプリケーションを選択し、インストールすることができます。
その中に、IIS関連の項目があり、Vista Premiumのこのマシンでも選択することができたので、そのままチェックしてインストールすると、「インターネット インフォメーション サービス (IIS) マネージャ」がインストールされていました。

まだ試していませんが、IISが動作する感じがします。
もしかしらたレガシーASPも動作するかも。。。