スキップしてメイン コンテンツに移動

投稿

ラベル(SQL)が付いた投稿を表示しています

SQLでは文字列の前に「N」が必要だ

SQLServerのテーブルにテキストを登録したら一部の文字が文字化けした。環境依存文字だと化けるみたい。

SQLServerで「〇」が空文字列と一致する件

少し前に不思議な現象をSQLServerで見つけたので記録しておく。「〇」文字をテーブルに登録して検索してみたらおかしいと云われて調べてみた。結果、「〇」ではなく「〇(漢数字)」文字を登録しているためとわかった。

テーブルを作る処理を整理する試み(1)

10個以上のテーブルをアクセスするアプリで、テーブルの管理を楽にしたいと思っていろいろ試したことを記録する。

varchar をデータ型 numeric に変換中に、算術オーバーフロー エラーが発生しました。

SQL Serverで頭記のエラーが起きたときは、文字列の数字を数値型の値に変換しようとして桁があふれた場合が多い。 たとえば '123456789012' という数字を0という数値と比較すると、数字を数値に変換して比較しようとして桁あふれが(算術オーバーフロー)が起きる select 1 where '123456789012' = 0 SQLServer2014だとエラーメッセージが少し変わって下記のようになる。 varchar の値 '123456789012' の変換が int 型の列でオーバーフローしました。 数字を数値に変換するSQLを修正すれば、このエラーは消える。テーブル設計がひどくて、varchar型の列に数字を登録して数値として扱う運用をしていたりすると、なかなか簡単ではないかもしれない。 * ここからは事例の紹介。 SQL Serverで何気ないSQLが急にエラーになってびっくりすることがある。たとえば、このSQLは調子よく動いていたのだが、データによってエラーが起きて、あたふたしてしまった。 select case when isnull([機関番号],0) = 0 then 5521111111 else [機関番号] end このSQLには1つ問題があって「機関番号」がvarchar(10)の列というのがミソ。ここに '5555555555' という大きな数字を登録したら、エラーが起きた。 エラーの原因を調べるためにSQLを少し書き換えてみる SQL(1) select case when isnull('5555555555', 0) = 0 then 5521111111 else 0 end SQL(2) select isnull('5555555555', 0) SQL(3) select case when isnull('5555555555', '') = '' then 5521111111 else 0 end SQL(4) select case when 1=0 then 5521111111 else '55555555...

テーブルを他のパソコンへコピーしたい

データベースにあるテーブルを内容を含めて、他のパソコンのデータベースへコピーしたい。ネットワークでコピーする手もあるだろうけど、ここでは、SQLを使う方法を。

現在のコマンドで重大なエラーが発生しました。結果は破棄しなければなりません。

Azureの仮想マシンのWindows10にSQLServer2014をセットアップして、特定のテーブルを作ろうとするとエラーが起きる。仮想マシンではない「生」PCだとエラーは起きない。なんとも不思議。

SQLで乱数を使ってテストデータを作る

SQLServerには乱数を求めるRAND関数があるので、これを使ってテストデータを作れそうだが、ちょっと簡単ではなかった。

select文が遅くなったら

selectの問い合わせがすごく時間がかかる、タイムアウトしたみたいだ、台帳テーブルの一部を削除して、追加したら、こうなった、、、と云う問題が発生して1日かけて調べてみた。

(SQL)3つのテーブルをjoinするクイズ

以下の3つのテーブルがあるとする。

(SQL)「いわき」と「イワキ」がGroupByでも区別されない

SqlServerの照合順序でひらがなとカタカナを区別しないモードにしていると、GroupByでも区別されない。

SqlServerのBackupフォルダのパスをゲットする

SqlServerではバックアップコマンドを実行したときにファイルが作られるデフォルトのフォルダがある。たとえば、SQL Server 2008 では「C:\MSSQL$インスタンス名\MSSQL10_50.インスタンス名\MSSQL\Backup」がそれだ。

SQLServerオブジェクトエクスプローラ

VisualStudio2013のSQLServerオブジェクトエクスプローラのクエリ編集画面はとてもかしこい。

2組のデータから成績をつけるSQL

2組のデータから成績をつける処理をSQLで作るにはどうするかを考える。

プロセスはファイルにアクセスできません。別のプロセスがファイルの一部をロックしています。

Azureの仮想PCにWindows10の仮想PCを作って、SQL Server 2014 SP1 をセットアップしようとしたら、エラーが出てまたうまくいかないわけです。 次のエラーが発生しました:プロセスはファイルにアクセスできません。別のプロセスがファイルの一部をロックしています。