fc2ブログ

記事一覧

英語の月名を含む日付の変換方法 | SQL Server

今回は SQL Server で英語(英字)の月名を含む文字列を日付型に変更したり、日付型のデータを英語(英字)の月名を含む文字列に変更する方法を覚え書きします。通常では、日付と文字列の相互変換にはマイクロソフトの公式ページにあります変換表を元に変換しますが、今回はそこに載っていないパターンの「Janurary 01 2021」などの文字列を日付に変更する場合は、独自で変換する必要があります。前提条件・Windows 10 professiona...

続きを読む

全角と半角と大文字と小文字を区別せずに検索する方法 -照合順序- | SQL Server

今回は SQL Server で正しく照合順序が設定されていないが故に、SQL でのあいまい検索等を実行した際に意図しない結果となることがあります。通常、データベースを作成する際に、全角と半角、大文字と小文字を区別しない照合順序である Japanese_CI_AS で設定することがセオリーとされていますが、昔のシステムやデフォルトのままだと区別するような設定になっていることがあります。そこで全角・半角・大文字・小文字が区別されて...

続きを読む

IN 句と EXISTS 句で実行速度が速いのはどちらの方か検証してみました | SQL Server

今回は SQL Server において IN 句と EXISTS 句でどちらが実行速度が速いのかを調査・検証してみました。通常 INNER JOIN (等価結合)が一番速いという事は誰もが認識されていると思いますが、IN 句は遅く、EXISTS 句は速いという事が RDB の通説と言われていますが、SQL Server ではその実行速度が同じという事を聞きましたので、改めまして検証してみたいと思います。前提条件・Windows10 Pro 64Bit 1709・SQL Server 2016 Develo...

続きを読む

複数トリガーの実行順序を検証してみました | SQL Server

今回は SQL Server においてひとつのテーブルに複数のトリガーを設定した場合の実行順序について調査してみました。通常のシステムではトリガーによる影響が複雑になるため、ひとつのテーブルに対してひとつの種類のトリガーを設定します。例えばテーブルA には Update トリガーがひとつと Insert トリガーがひとつを設定しますが、Insert トリガーを2つ設定することはセオリーではありません。たまたまひとつのテーブルに複数の...

続きを読む

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

今回は SQL Server で文字列を数値型に変換する際に、以下のようなエラーが発生し変換に失敗する件について覚え書きします。このエラーは型の桁数よりも大きい数値を代入した際に出力される普通のエラーなのですが、今回は桁数がそこまで多くない数値の文字列を数値型に変換しているのにエラーが出力されることから、冷静な判断を誤りました。普段から金額にはMONEY型を使用していたため、あまり使用しない型を使って初心者のよう...

続きを読む

Excelをインポートする方法 -Transact SQL- | SQL Server

今回は SQL Server でTransact-SQLのみでプロシージャとして使用が可能なエクセルインポート方法を覚え書きします。Excelを取り込む方法といっても検索するとウィザードでとかVBでとかばかりで参考にならないものが多かったです。業務系のDBサーバーではExcelをバッチで取り込みたいなど要望が多いと思います。VBで作成するのも手ですが、今一つお手軽感がありません。  前提条件・Windows 7 professional 以降 / Windows Se...

続きを読む

リンクサーバー (null) の OLE DB プロバイダー BULK から行をフェッチできません | SQL Server

今回は SQL Server の BULK INSERT を使用中に以下のようなエラーが出力されましたので、その対応方法についてご紹介いたします。エラーNO:7330エラー内容:リンクサーバー "(null)" の OLE DB プロバイダー "BULK" から行をフェッチできません。 前提条件・Windows 7 professional 以降 / Windows Server 2008 R2 以降・SQL Server 2008 Developer / Standard / Enterprise 以降1.原因調べてみると、データの件数が多すぎるこ...

続きを読む

CSVファイルを動的にインポートする方法 (ファイル名とテーブル名を指定) -Transact SQL- | SQL Server

今回は SQL Server のストアドプロシージャにおいてCSVファイルをテーブルに取り込む方法について覚え書きします。基本的には BULK INSERT で取り込みが可能ですが、通常の記述方法ですとファイル名はハードコートで、インポートするテーブルも固定で記述になってしまい、使いまわしにくいコードとなってしましいます。そこで、ファイル名を変数で渡し、テーブル構造も動的に作成する方法を考えてみました。 前提条件・Windows 7 ...

続きを読む

SQLCLRを実装する手順 | SQL Server

今回は SQL Server で SQLCLR を実装する手順とその実行方法について覚え書きします。SQLCLRは SQL Server 2005 から搭載された機能で、VBやC#のコードをストアドプロシージャやスカラー関数として呼び出すことができる大変便利で、さらには .NETのソースと互換性のある機能です。しかしながら、最近再度使用してみましたところ、少しつまづきましたのでここに覚え書きしたいと思います。 前提条件・Windows 7 professional ...

続きを読む

ストアドプロシージャでメールを送信する方法 -Transact SQL- | SQL Server

今回は SQL Server のストアドプロシージャ内においてメールを送信する記述方法について覚え書きします。サーバーでのメールアカウントの設定は前回の記事「メール送信設定を構成する方法」をご参考ください。 前提条件・Windows 7 professional 以降 / Windows Server 2008 R2 以降・SQL Server 2008 Developer / Standard / Enterprise 以降・サーバー上でメール送信設定の構成が済んでいること1.実装方法メール送信自体は SQ...

続きを読む

メール送信設定を構成する方法 -Transact SQL- | SQL Server

今回は SQL Server でメールを送信する為の設定を構成する方法について覚え書きします。ウィザードになっており、クライアントのメーラーができる人であれば誰でも設定ができるくらい簡単でした。次回の記事で「メール送信を行うストアドプロシージャ」についてご紹介いたします。 前提条件・Windows 7 professional 以降 / Windows Server 2008 R2 以降・SQL Server 2008 Developer / Standard / Enterprise 以降1.ウィザード...

続きを読む

複数のカーソルを開く方法 -ヘッダーと明細で複数のカーソルが必要な場合の記述方法- | SQL Server

今回は SQL Server で複数のカーソルを続けて開く方法を覚え書きします。例えばヘッダーと明細でヘッダーの番号を元に明細のレコードをフェッチするなどの記述が必要なケースが多々あると思います。明細のカーソルの記述場所がヘッダーのカーソルの内部に定義しないと正しく動作しませんので、少しハマりどころだと感じました。 前提条件・Windows 7 professional 以降 / Windows Server 2008 R2 以降・SQL Server 2008 Developer ...

続きを読む

指定した文字で指定した文字数分だけ文字埋めする方法 -0埋めする方法- | SQL Server

今回は SQL Server で指定した文字を指定した文字数分だけ文字埋めする方法を覚え書きします。例えばよくあるのが0埋めですね。"123"という数値文字列の先頭に"00"を付けて"00123"といった5桁の数値文字列で返したいなどの場合に役立つ方法です。.Netで言うところのPadLeft関数ですね。  前提条件・Windows 7 professional 以降 / Windows Server 2008 R2 以降・SQL Server 2008 Developer / Standard / Enterprise 以降1...

続きを読む

文字列のチェック・検証を行う方法 -文字数・バイト数・半角全角チェック- | SQL Server

今回は SQL Server で文字列関連のチェック・検証を行う方法について覚え書きします。 前提条件・Windows 7 professional 以降 / Windows Server 2008 R2 以降・SQL Server 2008 Developer / Standard / Enterprise 以降1.文字数取得する文字列の文字数はLEN関数によって取得ができます。※LENGTH関数は使用できなくなっています。--文字列の長さSELECT LEN('山田太郎');--結果: 42.バイト数を取得する文字列のバイト数はDATAL...

続きを読む

Throw 付近に不適切な構文があります。次が必要です: CONVERSATION、DIALOG、DISTRIBUTED、またはTRANSACTION. | SQL Server

今回は SQL Server にて以下のようなエラーが表示される場合の対応方法について覚え書きします。【エラーその1】'Throw' 付近に不適切な構文があります。【エラーその2】'Throw' 付近に不適切な構文があります。次が必要です: CONVERSATION、DIALOG、DISTRIBUTED、またはTRANSACTION. 前提条件・Windows 7 professional 以降 / Windows Server 2008 R2 以降・SQL Server 2012 Developer / Standard / Enterprise 以降1.原因【...

続きを読む

ストアドプロシージャ内にてカーソルでループして更新する方法 | SQL Server

今回はストアドプロシージャ(以下SPと呼ぶ)を記述する際に、ループして更新する方法にカーソルがありますが、その記述方法についてご紹介いたします。前提条件・Windows 7 professional 以降 / Windows Server 2008 R2 以降・SQL Server 2005 Developer / Standard / Enterprise 以降1.カーソルの宣言DECLARE カーソル名 CURSOR LOCAL FOR SELECT文2.ループのオープン・ループ方法OPEN カーソル名FETCH NEXT FROM カーソル名...

続きを読む

FunctionでRoundDown関数を作成する方法 | SQL Server

今回は SQL Server で RoundDown 関数を作成する方法をご紹介いたします。SQL Server には端数処理関数としては標準ではあまり整っていません。そこで UI 側から呼び出す際に VBのみで記述したりするケースをよく見かけますが、それだとストアドプロシージャ(以下ストアド)内にて記述する際に、別途作成する必要が出てきます。このような共通処理的なものは Function として作成すると VB からも呼び出せるし、ストアドや View ...

続きを読む

ストアドプロシージャ内にてロールバック後にエラー内容を表示する方法 | SQL Server

今回は、SQL Server にてエラーをキャッチし、エラーがあればロールバックしてエラー内容を表示し、またエラーが無ければコミットする方法をご紹介いたします。前提条件・Windows 7 professional 以降 / Windows Server 2008 R2 以降・SQL Server 2005 Developer / Standard / Enterprise 以降 ポイントとしては(1)エラーをハンドリングする場合は、  BEGIN TRY - END TRY ~ BEGIN CATCH - END CATCH で囲みます。(2)ロ...

続きを読む

テーブルのバックアップを日付を付けて取得する方法 | SQL Server

今回は SQL Server にてテーブルのバックアップを取得する際に、動的にテーブル名に日付を付けて作成する方法をご紹介いたします。前提条件・Windows 7 professional 以降 / Windows Server 2008 R2 以降・SQL Server 2005 Developer / Standard / Enterprise 以降1.実装方法作成する際のポイントは以下の通りです。(1)動的にSQLを作成する場合、EXEC関数にてSQLを実行します。(2)日付をYYYYMMDDで取得する場合は   CONV...

続きを読む

カテゴリ別記事一覧

広告

プロフィール

石河 純


著者名 :石河 純
自己紹介:素人上がりのIT技術者。趣味は卓球・車・ボウリング

IT関連の知識はざっくりとこんな感じです。
【OS関連】
WindowsServer: 2012/2008R2/2003/2000/NT4
Windows: 10/8/7/XP/2000/me/NT4/98
Linux: CentOS RedHatLinux9
Mac: macOS Catalina 10.15 / Mojave 10.14 / High Sierra 10.13 / Sierra 10.12 / OSX Lion 10.7.5 / OSX Snow Leopard 10.6.8
【言語】
VB.net ASP.NET C#.net Java VBA
Xamarin.Forms
【データベース】
Oracle 10g/9i
SQLServer 2016/2008R2/2005/2000
SQLAnywhere 16/11/8
【BI/レポートツール】
Cognos ReportNet (IBM)
Microsoft PowerBI
ActiveReport (GrapeCity)
CrystalReport
【OCX関連】
GrapeCity InputMan SPREAD MultiRow GridView
【ネットワーク関連】
CCNP シスコ技術者認定
Cisco Catalyst シリーズ
Yamaha RTXシリーズ
FireWall関連
【WEB関連】
SEO SEM CSS jQuery IIS6/7 apache2

休みの日は卓球をやっています。
現在、卓球用品通販ショップは休業中です。