misc.log

日常茶飯事とお仕事と

SQLServer

DBの「登録日」「更新日」の指定方法に関するメモ

業務システムを作っていると、結構データベースの各レコードに「登録日」「更新日」などを設定するようになっている設計を見かけます。ここのデータを誰がいつ書き込んだのかを記録することで、後々いろんな調査などに使うというものですね。これ、過去に見…

C#のDataGridViewに西暦1年1月1日を入れると空欄になる件

新人研修で挙がってきた質問、とりあえず分かったことまで書き添えてteratailに投げてみた。teratail.comVisual C#データベースプログラミング入門作者: 日向俊二出版社/メーカー: カットシステム発売日: 2011/06/01メディア: 単行本購入: 1人 クリック: 2回…

SQL ServerでのLike検索でエスケープすべき文字

ちょっと理由をうまく説明できなかったのでメモ。SQLでデータベースから情報を取得する際に「Like」で指定する場合、ワイルドカードとして使える文字があります。そういう「ワイルドカード文字」のような特殊用途文字自体を検索する場合、「これは特殊文字だ…

SQL Serverの裏側関連情報メモ

SQL ServerがSQLをどのように解釈して動いているかについて説明するための準備用資料。ちょっとメモ。 開発者のための SQL Server パフォーマンス チューニング/最適化講座 上記URLはSQL Server 7のものですが、英語のスライドを日本語で補足する形で3章に分…

SQL Server Management Studioのインストール

SQL Serverで研修課題などを作ってアクセスしてもらおうとしたのですが、そういえばSQL Server Management Studioってどうやってインストールするのだったかな……と検索したところ……。今はフリー版が公開されているのですね。知りませんでした。 SQL Server M…

SQL Server 2008R2をWindows10にインストールしようとしてエラー

SQL Server 2008R2をWindows10にインストールしようとして下記のエラーが発生してしまいました。そもそもサポートされているOSではないのですが、まぁそこはサポート云々関係なくちょっと調査で動きを見たいだけなので……。 アプリケーションのコンポーネント…

SQL ServerのSQL整形アドイン(これはいい!)

SQL Server Management StudioでのSQL作成時に、SQL文を整形してくれるツールが無いかと思い探したところ、Poor Man's T-SQL Formatterというアドインが紹介されているのを見つけました。SQL Server Management Studio で SQLを一発整形 – gomokulog作成元の…

SSISでパッケージファイルのパスワードが開けない、設定ファイルもうまくいかない…(調査中メモ)

Microsoft Visual Studio 2013 ShellのSQL Server Integration Services(SSIS)デザイナーでSSISの処理定義を作成し、ビルドしてできた拡張子dtsxのファイルをDBサーバー上で動かそうとしているのですが、うまく行きません。特に何も設定無しで作成し、デー…

SQL Server、OpenQueryでのSQLは文字列連結などが使えない?

SQL ServerからOracleにリンクテーブル経由でアクセスしていろいろデータを持ってくる処理を作成中。サーバー名やらスキーマ名やらをピリオドでつないだSQL記法だとインデックスが使えず遅いため、SQL ServerのOpenQuery命令でSQLごとOracleに渡し、Oracle側…

ASP.NET/ADO.NETからの実行だと遅いストアドプロシージャ問題、とりあえず解決にめど

昨日書いたこれ……www.backyrd.netSQL Server Management Studioから実行すると1~2秒で結果を返すストアドプロシージャが、なぜかASP.NETのWebアプリから実行すると4分~5分もかかるという問題。とりあえず速度差が無くなったので報告。 対応案 Stackoverflo…

SQL Server、ストアドプロシージャ実行計画のキャッシュを確認する(メモ)

メモです。忘れないように。 SQLサンプル SQL Serverのストアドプロシージャ、実行計画のキャッシュ情報を調べるSQL例。 select * from sys.dm_exec_procedure_stats where object_id='2049442375' order by last_execution_time desc select * from sys.dm_…

Webアプリから実行すると遅いSPが、SSMSからだと速い

※一応解決。最新情報は → http://www.backyrd.net/entry/20160810/1470796194 ちょっとメモ。とあるストアドプロシージャが、Webアプリ(ASP.NET、ADO.NET経由)で実行するとタイムアウトしたりしなかったりなのですが、SSMS(SQL Server Management Studio…

自動生成されたユニークキーをSQL Serverで扱う場合の注意

何かのシステムが吐き出したキー文字列をSQL Server上でキーとして利用する場合、照合順序に気をつけましょう。特にアルファベットを多用したキーの場合、キー重複でやられる可能性があります。SQL Serverで日本語を扱うDBを作った場合、たいていテーブルや…

SQL Serverの照合順序、略号の意味

SQL Serverの照合順序設定についている「CI_AS」とかって「Case Insensitive」「Accent Sensitive」の略だったのですね……気になるようできちんと調べたことがありませんでした。納得です。こちらのブログで説明されていて知りました。 SQL Server 照合順序の…

文字コード関連の過去エントリー

なんか自分よりずっと前からウェブ関連やってる人たちが全然文字コードとか気にしてなくてノウハウも持ってなくてちょっと参ってるので、とりあえず過去に自分が書いたものを列挙しておきます。何か聞かれたときにさっと調べられるように。 文字コード全般 w…

SQL Server のText型に対するInsertに関する制約は?

お仕事メモ。SQL Server 2012上に用意したテーブルのText型カラムに、長い文字列を突っ込もうとしたところ「入らない」という事態が発生。書き込み処理はLinux上で稼働するPHPから。疑うべきポイントはドライバやSQL Serverの設定やらいろいろありそうなので…

SQL ServerからImage列の内容をファイルとして出力する

SQL ServerのImage型にバイナリデータが突っ込まれている場合、それの内容を見たいと思っても出す方法が見当たりません。先日、そういうデータの取り出し作業があった際はVB.NETでツールを作ったのですが、どうやらSQLからbcpコマンドを無理やり実行する方法…

DTSの定義情報をVisual Studio 2008で確認する(断念…)

結論からいうと、自分の作業環境ではできませんでした。念のため試したことを記載しておきます。参考まで。古いシステムの刷新プロジェクトで、SQL ServerのDTS(Data Transformation Services)が利用されていたので、その内容を見たいのですが…。手元にあ…

SQL ServerからExcelにエクスポートすると先頭空白のデータから空白が消える?

現象等厳密に把握できていないので、とりあえずメモ書き。SQL Server 2012のManagement Studioから、エクスポート機能でテーブルの内容をExcel 2007形式にエクスポートしたところ、先頭が半角空白のデータから先頭空白が消えるという現象がでてしまいました…

だれだよvarcharで宣言したのは。ユニコード文字がDBに入らない

SQL Serverを使った古いシステムの移植作業でDBの定義はそのまま使いまわすということで作業を進めていたのですが、なぜか投入した文字データが化ける。よくよく見てみると型宣言がvarcharになっていました。これですが、SQL Serverだと varchar : 可変長文…

SQL Serverのストアドファンクションで引数を省略する……使いづらい(笑

SQL Serverのストアドプロシージャでは、引数宣言の際にデフォルト値を設定することで引数の省略が可能になります。たとえばこんな感じ。 @KEYVALUE int, @OPTIONVALUE int = 1 ストアドファンクションも同じように宣言できるのですが、省略宣言した場合でも…

SQL Serverのインデックスサイズは1件900バイトまで

とある設計資料で、巨大な可変長文字列「だけ」のテーブルで、その列が主キー設定されていました。主キーということはインデックスが作成され、インデックス自体にはその内容が転記されるかな?と思ったため、「これはインデックスサイズでかすぎてアウトだ…

SQL Server→PostgreSQLのテーブル変換

お仕事で、SQL ServerからPostgreSQLへのDB移設を行う必要が出てきたので、具体的な方法等について確認中。とりあえず、公式コミュニティで関連資料やツールをまとめられていたのでそこを参考にしています。 下記リンクに各種DBとの変換に関する情報がまとめ…

Windows Server 2008 R2上のPHPからSQL Server 2000に接続する

7月に、Windows Server 2008 R2上で動くPHPで作ったアプリから、SQL Server 2000にアクセスできるか?というのを試していたのですが、試行の過程を記録していませんでした。簡単ですがメモっておきます。多分あとで自分が使うので。発端については7月15日に…

PHPからSQL Server 2000へ接続する

表題の通り、PHPからSQL Server 2000に接続するシステムの実現性についてちょいと調べないといけないのでメモしておきます。今更SQL Server 2000かと思われるかもしれませんが、実際にはまだ稼働しているものはいっぱいあるんじゃないでしょうか。というわけ…

SQL Serverのサーバー間ストアドプロシージャ差異調査

ストアドプロシージャを使った開発で、ストアドプロシージャのソース管理や変更管理がうまくいってません。設計資料にも記載が無かったり、そもそもストアドプロシージャでやってるのか.NETでやってるのかも資料上明確でないという状況。というわけで、結構…

ActiveX Data Object 2.8と6.1はどっちが古いの?

よくわからんです。Excel VBAでDBアクセス処理の試作を行う必要があり、簡単なDBアクセス処理を書いているんですが、参照させるライブラリが分かりません。下記のどれが最新なんだろう? Microsoft ActiveX Data Objects 6.1 Library (msado15.dll) Microsof…

SQL Serverのバージョンを調べる

既に稼働しているSQL ServerのバージョンをSQLで調べる方法のメモ。以下のSQLを実行すれば結果が出ます。 SELECT @@VERSION 結果はこんな感じで。よくわかるSQL Server 2012データベース構築・管理入門編 (TECHNICAL MASTER)作者: 長岡秀明出版社/メーカー: …

片方のリストに有って、他方に無いものを探すSQL

システム開発後のデータ整合性調査や不具合調査などの中で、二つのテーブルにあるIDなどを比較、片方にしかないもの(いわゆる差異、差分)を探すという場面があったりします。こういう時、意外にみんな必死にExcelに貼り付けて比較式を書いたり、Accessに取…

ストアドプロシージャ、習得に向けた入り口まとめ

かれこれ15年以上逃げ続けてきたストアドプロシージャをはじめとした「データベースに直接触れる系の開発」、逃げ場が無くなってきたので対峙することにします(←そんなことないだろ?と言われがちですが、はい、データベースとSQL、苦手なんです。ついでに…