タグ

SQLserverに関するeight-sevenのブックマーク (40)

  • SQLServerのテーブルロック状態を取得するSQL

    SQL Serverでデッドロックの調査で苦労したので調査に使ったSQLなどをまとめておく。 SQL Serverにおいては、ロックの有無を確認するだけならsys.dm_tran_locksシステムビューですぐに確認できる。 しかし、sys.dm_tran_locksだけでは、テーブルロックや行ロックなどの情報がまとめて提供され、ロックされている対象も オブジェクトIDでの表記になるため非常にわかりにくいものになっています。 ですので、単純にSELECTするのではなく、IDからオブジェクト名を取得したり、オブジェクトの種類によって 別のシステムビューから情報を取得する必要があります。 手を加えたSQLが以下のようになります。 SELECT resource_type AS type --オブジェクトの種類 ,resource_associated_entity_id as entity_i

    SQLServerのテーブルロック状態を取得するSQL
  • Microsoft ODBC Driver for SQL Server on Windows - ODBC Driver for SQL Server

    ODBC ドライバーのダウンロード SQL Server 用 Microsoft ODBC Driver は、Microsoft SQL Server に標準の ODBC インターフェイスを実装するアプリケーション プログラミング インターフェイス (API) を提供するスタンドアロン ODBC ドライバーです。 Microsoft ODBC Driver for SQL Server を使用して、新しいアプリケーションを作成できます。 現在古いバージョンの ODBC ドライバーを使用している古いバージョンのアプリケーションをアップグレードすることもできます。 ODBC Driver for SQL Server を使用すると、Azure SQL Database、Azure Synapse Analytics、SQL Server に接続できます。 まとめ Version サポートされて

    Microsoft ODBC Driver for SQL Server on Windows - ODBC Driver for SQL Server
  • SQL ServerでXQueryするには?(準備編3):XML乱舞:エンジニアライフ

    <root xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> <row> <TAXCODE>0</TAXCODE> <TAXNAME>非課税</TAXNAME> <TAXRATE>0</TAXRATE> <MODIFIED>2000-01-01T00:00:00</MODIFIED> </row> <row> <TAXCODE>1</TAXCODE> <TAXNAME>課税</TAXNAME> <TAXRATE>5</TAXRATE> <MODIFIED>2001-01-01T00:00:00</MODIFIED> </row> <row> <TAXCODE>8</TAXCODE> <TAXNAME>旧消費税</TAXNAME> <TAXRATE>3</TAXRATE> <MODIFIED>2008-01-01T00:00:00<

    SQL ServerでXQueryするには?(準備編3):XML乱舞:エンジニアライフ
  • SQL Severでxml列のデータを扱う時用メモ - Qiita

    SQL Serverでxmlを扱いたいときにはxqueryを使う必要がある。 変数ではなく、xml列にデータが入っている際の扱いに関して、たまに使うときにわすれてしまうのでメモ ■Bulk InsertするときのCSVの中身 ※当たり前だけど、xml列に対してxqueryを投げるために、Bulk Insertするときはxml列のデータ形式は「xml」を指定する必要がある(vacharとかじゃだめ) id,xml 2,<root><item id="1">1</item><item id="3">2</item><item id="2">3</item><item id="5">4</item></root> 3,<root><item id="1">1</item><item id="4">2</item><item id="2">3</item><item id="6">4</item>

    SQL Severでxml列のデータを扱う時用メモ - Qiita
  • sqlcmd を使用してスクリプト ファイルから T-SQL を実行する - SQL Server

    適用対象: SQL Server Azure SQL Database Azure SQL Managed Instance Azure Synapse Analytics Analytics Platform System (PDW) Microsoft Fabric SQL Database sqlcmd を使用して Transact-SQL スクリプトを実行します。 Transact-SQL スクリプト ファイルは、Transact-SQL ステートメント、 sqlcmd コマンド、およびスクリプト変数を組み合わせて記述できるテキスト ファイルです。 スクリプト ファイルの作成 AdventureWorks2022 サンプル データベースがインストールされていることを前提として、このセクションの例に従って、sqlcmd を使用してコマンド プロンプトから実行できるスクリプト ファイル

    sqlcmd を使用してスクリプト ファイルから T-SQL を実行する - SQL Server
  • SQL Serverをコマンドラインで操作する - ITエンジニアの成長ブログ

    今回は、SQL Serverをコマンドラインで操作する方法を簡単に確認していきたいと思います。 以下の内容は、Windows 10のコンピュータにSQL Serverをインストールして確認しています。 コマンドラインツール SQL ServerをGUIで操作するには、あたりまえですが専用のツールを使用する必要があります。ツール自体は、SQL Serverをインストールしていれば同時にインストールされているかと思います。 コマンド名は、sqlcmdです。このコマンドを使用することで、コマンドラインで各種SQL文を実行できます。 個別でインストールする場合は、以下のリンクよりインストーラをダウンロードすることができます。 sqlcmd ユーティリティ - SQL Server | Microsoft Docs 基的な操作 以下から簡単な操作を紹介していきたいと思います。 ログイン SQL S

    SQL Serverをコマンドラインで操作する - ITエンジニアの成長ブログ
  • SSMSでトランザクション管理を有効にしてみた|ITエンジニアとして経験・学習したこと

    SSMS(SQL Server Management Tool)は、SQL Serverに接続しDB操作を行うためのツールで、デフォルトではオートコミットが有効になっている。そのため、update文やinsert文といったSQLを実行すると、更新内容が即時に確定されてしまうが、SSMSで明示的にコミットやロールバックを行うこともできる。 今回は、SSMSを利用してSQL Serverに接続し、明示的にコミットやロールバックを行ってみたので、その手順を共有する。 データベース設定の確認SSMSのデータベース接続設定を確認すると、データベース更新時に明示的にコミットやロールバックを行う必要があるかどうか(自動的にトランザクションを開始するかどうか)を確認することができる。その手順は、以下の通り。 1) スタートメニューから「Microsoft SQL Server Tools 18」の「Mic

    SSMSでトランザクション管理を有効にしてみた|ITエンジニアとして経験・学習したこと
  • 「断片化なし」「不足インデックスなし」にもかかわらず、業務処理が遅くなっていく(パフォーマンストラブル)

    解決方法 ある程度圧縮の効果が見込めると判断される場合は、実際にテーブルやインデックスに対して圧縮を実施しましょう。 例えば「OrderLines」というテーブルに対してページ圧縮する場合には、以下のクエリを実行します。 USE [WideWorldImporters] GO ALTER TABLE [Sales].[OrderLines] REBUILD WITH (DATA_COMPRESSION = PAGE) GO

    「断片化なし」「不足インデックスなし」にもかかわらず、業務処理が遅くなっていく(パフォーマンストラブル)
  • 403 Forbidden

  • 【SQLServer】インスタンスを追加する方法

    SQLServerで2つめ以降のインスタンスを追加する方法を紹介します。 1つめのインスタンスはSQLServerをインストールしたときに作れますが、2つめ以降のインスタンスを追加する方法は少し分かりにくいかと思います。 SQLServer2017を例に解説しますが、基的に他のバージョンでも同じです。 SQLServerでインスタンスを追加する方法 1.エクスプローラーからSETUP.EXEを開きます。インストールの場所などを変えていなければ、C:\SQLServer2017Media\Express_JPN のディレクトリにあると思います。 1の説明画像 2. “SQL Server の新規スタンドアロン インストールを実行するか、既存のインストールに機能を追加”をクリックします。 2の説明画像 3.内容を確認し、適宜設定などを行い[次へ(N)]をクリックします。 3の説明画像 4.内

    【SQLServer】インスタンスを追加する方法
  • SqlBulkCopy のスピードは 20 倍ぐらい早い | Moonmile Solutions Blog

    SQL Server に insert を繰り返してデータを入れる場合は、 ・bcp を使う。 ・bulk insert を使う。 ・SqlBulkCopy を使う。 を使います。bcp や bulk insert の場合は、ファイルからインポートするのでちょっと扱いづらい。SQL Server が別のマシン(サーバー機)にある場合は、一度ファイル転送をするか、ファイル共有をしないといけないので、ちょっと面倒です。 なので、SqlBulkCopy を使う…ってところまでは知っていたのですが、果たしてどのぐらいのスピードかどうかは定かだではないので、測定してみました。 結論から言えば、20 倍ほど早くなります。SQL Server 2008 の場合は 30 倍ほど、SQL Server 2000 の場合は 10-20 倍ほどなので業務コードに入れる場合は実測が必須ですね。 以下は、 crea

  • 【Excel・Access VBA】ADO入門|DBへの接続とレコードセットの取得をわかりやすく解説 - ITエンジニアの備忘録的技術ブログ【仮】

    静的バインディングなどとも呼ばれます。 VBE(Visual Basic Editor)の画面上部の「ツール」から参照設定画面を開くと、参照可能なライブラリの一覧が表示されます。 使用するライブラリにチェックを付けて登録しておくことで、遅延バインディングのようにCreateObjectをしなくても、対象のオブジェクトを呼び出せるようになります。 予め参照設定で有効化しておくことで、VBAで対象のオブジェクト名やオブジェクト変数名を記述した際に、対応したメソッド名やプロパティ名が候補として表示される「入力補完機能」が使える。 事前バインディングをした場合、チェックを付けたライブラリ名と同じ名称のライブラリが実行環境に存在しないとコンパイルエラーになります。 例えば、Access VBAからExcelの機能を呼び出す際に、参照設定からライブラリを指定する場合は以下の画像のようになります。 この

    【Excel・Access VBA】ADO入門|DBへの接続とレコードセットの取得をわかりやすく解説 - ITエンジニアの備忘録的技術ブログ【仮】
  • NVARCHARの桁数の罠 - bt

    SQLServerにはVARCHARのユニコード対応版である、NVARCHARというデータ型があります。 このNVARCHAR型の桁数がなかなかの曲者なんです。 VARCHAR(10)には何文字格納できるか? こう聞かれれば「半角10文字、全角5文字」と答える人が多いのではないでしょうか。 おそらくVARCHAR(10)の10は半角文字数と認識されていると思います。 ではNVARCHAR(10)ではどうでしょうか? 正解は「半角10文字、全角10文字」です。 NVARCHARはユニコードを扱うので、全ての文字を同じバイトで格納します。 従って半角全角の区別はありません。 NVARCHAR(10)の10は半角全角の区別なく、単純に文字数です。 この差を意識せずにNVARCHAR(10)をVARCHAR(10)に変換しようとすると たちまち桁あふれエラーが発生してしまうので注意が必要です。

    NVARCHARの桁数の罠 - bt
  • TSVファイルをBULK INSERTで取り込む - babydaemons’ blog

    CSVファイルがカンマ区切りであったのに対し、TSVファイルとはタブ区切りです(念のため)。Excelでセルの書式を壊さずにペーストできたり、プログラム上の扱いがCSVよりも簡単なのでTSVの方が好きです。 CSVファイルはこっちでやりましたが、今回はTSVファイルをやります。 USE MyDB BULK INSERT dbo.○○○マスタ FROM '\\SOMESERVER\SomeShare\Some\Directory\○○○マスタ.txt' WITH ( DATAFILETYPE = 'char', FIELDTERMINATOR = '\t', --ここが変わった ROWTERMINATOR = '\n' ) 簡単ですね。でもたまーにしか使わないので覚えられないですよ。orz BULK INSERTはフルパスでファイル名を指定しないといけないので http://www.h4.d

    TSVファイルをBULK INSERTで取り込む - babydaemons’ blog
  • VB.NET SQLServer 接続

    こんにちは、ひろにも です。 今回は、データベース関係の記事で、SQL Server 2017 Expressのインストール方法を記載していきます。SQLServerのExpressは、無料で使用できます。 無料版だと、1データベースあたり、10GBと制限がありますので、気を付けましょう。 Mic... サーバー名を入力します。今回はWindows認証で行うので認証はこのままでいきます。 そして、対象のDBを選択してください。選択したら、「OK」をクリックしましょう。 これで、接続文字列の設定は、完了です。 SQLServerの取得方法 それでは、ここからは、実際にSQLServerのデータを取得する書き方を載せていきます。 今回は、あらかじめテーブル(hironimoTable)を用意しており、5件のデータを登録しています。 このデータをデータテーブルに格納する方法を紹介します。 VB.

    VB.NET SQLServer 接続
  • Timeout error when migrating data in a large table

  • 【SQL Server】Oracleへのリンクサーバーを作成する - たきるブログ

    サーバA Windows Server 2008 R2 x64 SQL Server 2012 R2 x64 サーバB Windows Server 2003 R2 x86 Oracle 11g 11.2.0.1.0 x86 サーバAのSQL Serverにリンクサーバーを作成し、サーバBを参照できるようにする方法が分かったので、記しておく。 前提としては、当たり前のように、それぞれのDBが、外部からアクセス可能になっていること。(特にOracle側) 手順 全部サーバAで作業をする。 1.『SQL Server 構成マネージャー』から、SQL Serverを停止させておく。 2.OTNからSQL Serverのビット数に合わせたODACをダウンロードしてくる。 ※xcopy版でないもの!!! x86 Oracle Data Access Components (ODAC) for Win

    【SQL Server】Oracleへのリンクサーバーを作成する - たきるブログ
  • インデックスと制約の無効化 - SQL Server

    適用対象: SQL Server Azure SQL データベース Azure SQL Managed Instance この記事では、SQL Server で、SQL Server Management Studio または Transact-SQL を使用して、インデックスまたは製薬を無効にする方法について説明します。 インデックスを無効にすると、ユーザーはそのインデックスにアクセスできなくなります。クラスター化インデックスの場合は、基になるテーブルのデータにもアクセスできなくなります。 ただし、インデックス定義はメタデータに残り、インデックス統計は非クラスター化インデックス上に保持されます。 ビュー上でクラスター化インデックスまたは非クラスター化インデックスを物理的に無効にすると、インデックス データが削除されます。 テーブルのクラスター化インデックスを無効にすると、データにアクセス

    インデックスと制約の無効化 - SQL Server
  • SSMA for Oracle クライアントのインストール (OracleToSQL) - SQL Server

    SSMA クライアントは、次のタスクを実行するプログラム ファイルで構成されます。 Oracle データベースに接続します。 SQL Server のインスタンスに接続します。 Oracle データベース オブジェクトを Microsoft SQL に変換する SQL Server にオブジェクトを読み込みます。 Linux 上の SQL Server にデータを移行する この記事では、インストールの前提条件と SSMA をインストールするための手順について説明します。 前提条件 SSMA は、Oracle 9 以降のバージョンと SQL Server のすべてのエディションで動作するように設計されています。 SSMA をインストールする前に、コンピューターが次の要件を満たしていることを確認します。 Windows 7 以降のバージョン、または Windows サーバー 2008 以降のバ

    SSMA for Oracle クライアントのインストール (OracleToSQL) - SQL Server
  • 『SqlServerでGreatestやLeastを行う』

    SqlServerでOracleやPostgresでのGreatestに該当する関数が無いので面倒だ。 自作関数を作成しようとしても配列型のパラメータは無い。 「テーブル値パラメータ」を配列のように使用することも可能ではあるが、 そのテーブルを作成し値を入るというのが、これまた面倒。 COALESCE()ではパラメータ数に制限が無いので、同様のパラーメータ型が提供されれば、 事なきを得るのにと思うことしきり。 まあ、そもそもそんなパラメータ型が提供されるときには、greatest()などの関数も一緒に提供される可能性が高い。 そこで自作関数はあきらめて、SQLの記述だけで何とかしてみた。 テーブル値コンストラクターをFROM句の派生テーブルとして使用する。 カラム(A,B,C)を持つテーブルXで、A,B,Cの項目のうち最大値を求める場合 select (select max(item) f