タグ

SQLServerに関するbabydaemonsのブックマーク (24)

  • SQL serverに繋がりません

    前提・実現したいこと sql server expressをPCに導入しました。 別途導入したソフトウェアでそのsql serverにつなげようと思ったのですが、自分の想定と違ってて原因というか、何故なのか気になってしまいます。 発生している問題・エラーメッセージ SQL Serverへの接続を確立しているときにネットワーク関連またはインスタンス固有のエラーが発生しました。サーバーが見つからないかアクセスできません。インスタンス名が正しいこと、およびSQL Serverがリモート接続を許可するように構成されていることを確認してください。 (provider: SQL Network Interfaces, error: 26 - 指定されたサーバーまたはインスタンスの位置を特定しているときにエラーが発生しました) 試したこと SQL Server Express をPCに入れた。 インスト

    SQL serverに繋がりません
    babydaemons
    babydaemons 2023/05/07
    一日嵌ってた。orz“SQLEXPRESSは、Express Editonの名前付きインスタンス(デフォルト)です。 既定のインスタンスはNullであっていると思います。 なので、接続文字列でインスタンス名を書かないと接続できます。”
  • SQLServerのMERGEでINSERT/UPDATE/DELETEを1回のSQLで実行する

    あるテーブルやビューに既に対象のレコードが存在している場合はUPDATE(更新)し、存在していない場合はINSERT(挿入)する。 データベースを使ったアプリケーションを開発していると、よく遭遇するケースの処理です。 こんな場合はどのように処理を行えばよいでしょう。 一旦SELECTを実行して対象のレコードを取得して、データの取得有無の判断をIF文で分岐し、レコードが取得できればUPDATEを実行、レコードが取得できなければINSERTを実行する。 単純に考えれば上記のような処理になります。しかし、上記の処理はSELECTという処理と、UPDATEまたはINSERTという処理の2つの処理に分かれており、1回のSQLで実行することはできません。 SQLServerにはある条件を満たすデータが存在している場合はUPDATEやDELETEの処理、データが存在していない場合はINSERTの処理を行

    SQLServerのMERGEでINSERT/UPDATE/DELETEを1回のSQLで実行する
    babydaemons
    babydaemons 2023/04/19
    INSERT or UPDATEを一発で行うMERGEがあるのは知らなかった
  • メモリ最適化テーブルの適用についての所感 at SE の雑記

    昨日、メモリ最適化テーブル (Hekaton) の利用方法について数名の方からご質問いただきました。 Hekaton の利用方法について個人的な所感を。 私はまだ、案件での適用は経験していないため、経験則ではなくこんな感じかなという雑然とした内容になってしまってまいますが。 テーブルやクエリの制限などの仕様については前提として満たす必要がありますので、その辺は触れていません。 ■データサイズについて メモリ最適化テーブル のチェックポイントファイルの最大数は 128MB ×4,096 = 512GB となります。 Hardware Considerations for In-Memory OLTP in SQL Server 2014 によるとメモリ最適化テーブルの現状のサポートは 256GB となるようですので、テーブルのデータがこの範囲に収まるかどうかを検討する必要があります。 In

  • .NETの各種DBアクセス方法を試す(DataSet,EntityFramework,Dapperなど) - endokのブログ

    はじめに .NET使って何か作ろうと思ったのだが、仕事では独自Frameworkばかり使っていて標準的な方法を触ったことがないので、有名所のDBアクセス方法を試してみたいと思う。 サンプルコードの全体は下記。 GitHub - endok/sample-dotnetdb: .NETDBアクセスサンプルコード。 対象 試す対象は、 ADO.NET SqlClient ADO.NET DataSet EntityFramework Dapper 環境 Windows10 Pro .NET Framework 4.6 Visual Studio Community 2017 SQLServer 2017 Developer データ準備 下記状態を前提とする。 SQLServerインスタンスはlocalhost:1433で起動 DB名:testDB 接続ユーザー:sa 接続パスワード:P@ssw

    .NETの各種DBアクセス方法を試す(DataSet,EntityFramework,Dapperなど) - endokのブログ
  • 【C#】SQLServerのすべてのテーブルをExcelに出力する - Qiita

    ■ 経緯 仕事でデータベースを扱う際に、どんなテーブルがあり、どんなカラムがあるのか、またどんなデータが入っているかを、データベースにアクセスせずにパッと確認できたら、、、と思い、Excelに出力してみました。 ■ 環境 OS:Windows10 IDE:Visual Studio2019 ■ SQL Server Management Studio でエクスポートする(2020/5/3追記 @albireoさんより) SQL Server Management Studio(SSMS)でデータベースの内容をすべてエクセルにエクスポートできる、とのコメントをいただきました。こんなやり方があったのか!目から鱗です!(考えてみれば同じMicrosoft製品ですもんね…そりゃできるか)。なので、下記サンプルコードは見なくてOKですw(一応断片的には使えるかもしれないので、残しておきます) リンク

    【C#】SQLServerのすべてのテーブルをExcelに出力する - Qiita
    babydaemons
    babydaemons 2022/06/07
    これはこれで良いだけど、ClosedXMLが遅いからなー
  • MDFファイル(ローカルDB)を使ったアプリケーションを真っ新な環境で動かす方法 Output48

    MDFファイル(ローカルDB)を使ったアプリケーションをVisual Studioで作成し、使用するパソコンで動作させる時、SQL Serverやら何やらインストールしとかないと動かないので、その一部始終。 真っ新な環境で動かしてみると 以下のファイルで構成されるアプリケーションを、真っ新な環境に置いてみた。 ・Application.exe ・Application.exe.config ・Database.mdf ・Database_log.ldf exeファイルを起動してみると、 どーん! 例外エラーが発生。 SQL Server への接続を確立しているときにネットワーク関連またはインスタンス固有のエラーが発生しました。サーバーが見つからないかアクセスできません。インスタンス名が正しいこと、およびSQL Serverがリモート接続を許可するように構成されていることを確認してください。

    MDFファイル(ローカルDB)を使ったアプリケーションを真っ新な環境で動かす方法 Output48
  • Troubleshooting Connectivity #4 - 接続エラーの調査方法

    高橋 理香 SQL Developer Support Escalation Engineer こんにちは。 SQL Server への接続シリーズも今回で 4 回目となりました。だいぶ時間空いてますけど、その点はご容赦ください。。。 それでも、少しでも、読んでくださっている皆さんのお役に立っているといいなと思う今日この頃です。 Troubleshooting Connectivity #1 - SQL Server への接続 Troubleshooting Connectivity #2 - エラー情報からわかる失敗原因 Troubleshooting Connectivity #3 - 予期しない接続切断 さて今回は、これまでの Troubleshooting ではなんとかならなかった、もしくは、きちんと裏を取ってから対処を行いたい、という場合にどんな情報を採取したらよいかについてご紹

    Troubleshooting Connectivity #4 - 接続エラーの調査方法
  • 『【SQLServer】対になっているキーワード値が無効です。(エラーコード-2147467259』

    クライアントPCで一気にODBC設定を変更する必要にせまられた。 そこでバッチファイルを使って一気に設定しようとした。 ODBCCONF /Aを使い odbcconf /A {CONFIGSYSDSN "SQL Server Native Client 11.0" "DSN=DSN名|DATABASE=DB名|SERVER=サーバー名|PORT=1434|UID=ユーザーID|PWD=パスワード|Trusted_Connection=no"} とするが、 対になっているキーワード値が無効です。(エラーコード-2147467259 となり、エラーで出来ない。 (ちなみにSQLServerのODBCドライバには「SQL Server」と「SQL Server Native Client」がある。ここの比較が分かりやすいが、結局どっちでも繋がる。) 調べると、「ユーザーID、パスワードを抜けば出

    『【SQLServer】対になっているキーワード値が無効です。(エラーコード-2147467259』
    babydaemons
    babydaemons 2017/03/13
    "「対になっているキーワード値が無効です。」このエラーは現在のSQL Serverのドライバーがセキュリティ的な理由からUSERやPWDのパラメーターをレジストリでサポートしていない為に起こる"
  • @IT > Insider.NET > .NET TIPS > アプリケーション内でデータベースをアタッチするには?[C#、VB]

    データベースを利用するアプリケーションを配布したり、出来上がったWebアプリケーションをサーバにインストールしたりするような状況では、アプリケーションの実行前にデータベースの準備が必要になる。 これには、事前に保存しておいたデータベースのスキーマ情報を用いて、利用するデータベース・サーバにデータベースを構築したり、SQL Serverでは、開発環境で使用したデータベースをデタッチし、データベース・ファイル(.mdfファイル)をコピーしてから、目的のSQL Serverでアタッチすることもできる。ほかにも、データベースのバックアップを作成しておき、目的のSQL Server上でデータベースを復元したり、SQL Server 2000ならDTSエクスポート機能を使ってデータベースをコピーしたりすることも可能だ。 いずれの方法をとるにしても、SQL Serverの管理ツールを使ってデータベースの

    babydaemons
    babydaemons 2014/06/28
    *.ldfは不要(アタッチ時に勝手に作る)。ログファイルが不要なアプリケーションではデタッチして削除すればいい??
  • Oracle 結合を含んだ更新 - 使えないプログラマー

    結合を含んだ更新(Update)のOracleでの書き方。 SQL-Serverと違ってUpdate句の中でJoinが使えないのでサブクエリ内で結合する。 また、更新する列をサブクエリ内で取得しておく必要がある。 ※テーブル1とテーブル2で結合し、テーブル2の項目でテーブル1を更新する例 ・SQL-Serverの場合 UPDATE table1 SET COL1 = B.COL1 FROM table1 A INNER JOIN table2 B ON A.CD1 = B.CD1 ・Oracleの場合 UPDATE ( SELECT A.COL1 A_COL, B.COL2 B_COL FROM table1 A INNER JOIN table2 B ON A.CD1 = B.CD1 ) SET A_COL = B_COL

    Oracle 結合を含んだ更新 - 使えないプログラマー
  • MERGE ステートメント(UPSERT) - matu_tak’s blog

    SQL Server 2008 からは、MERGE ステートメントがサポートされました。MERGE ステートメントは、データが存在する場合には UPDATE を、存在しない場合には INSERT 処理が行えるステートメントなので、UPSERT とも呼ばれています(UPDATE と INSERT を組み合わせた造語)。 MERGE は、次のように試せます(t1 と t2 テーブルを作成して、これをマージ)。 CREATE TABLE t1 ( a int, b varchar(100) ) INSERT INTO t1 VALUES ( 1, 'AAA' ) ,( 2, 'BBB' ) ,( 3, 'CCC' ) ,( 4, 'DDD' ) CREATE TABLE t2 ( a int, b varchar(100) ) INSERT INTO t2 VALUES ( 3, 'XXX' )

    MERGE ステートメント(UPSERT) - matu_tak’s blog
  • 変数をもとにした MERGE - matu_tak’s blog

    MERGE ステートメントの USING には、テーブル名だけでなく、任意のクエリを記述することができます。したがって、複数のテーブル同士の MERGE だけでなく、任意の変数の値をもとにして、MERGE ステートメントを実行することもできます。 次のように t1 テーブルと、変数 @a と @b があった場合に、MERGE するには、次のように記述します。 DECLARE @a int = 4 ,@b varchar(100) = 'EEE' MERGE INTO t1 USING ( SELECT @a AS a, @b AS b ) var ON t1.a = var.a WHEN MATCHED THEN UPDATE SET t1.b = var.b WHEN NOT MATCHED THEN INSERT VALUES (var.a, var.b ); そのほかの SQL Se

    変数をもとにした MERGE - matu_tak’s blog
  • 全ては時の中に… : 【SQL Server】ストアドプロシージャ内でSQLを動的に生成する

    2007/11/2921:31 【SQL Server】ストアドプロシージャ内でSQLを動的に生成する プログラムで実行するSQL文を動的に生成して実行することは頻繁に行われる。 この利点は、条件に応じてSQL文を組み替えることができ、柔軟な対応ができることである。 これに対し、ストアドプロシージャを利用する場合、 ・条件が異なる場合、複数のストアドプロシージャを用意する。 ・SQL文を固定にしてパラメータのみ可変とする。 といった対応を採ることが多い。(※1) SQL Serverでは、ストアドプロシージャ内で動的にSQL文を生成して実行する方法が用意されている。 以下の構文を利用すれば、実現することができる。 EXEC ('SQLステートメント') 以下、サンプル。 【前提条件】 《利用するテーブル》 取引テーブル(取引番号, 取引区分, 仕入番号, 売上番号) 仕入テーブル(仕入番号

    babydaemons
    babydaemons 2012/07/17
    なんでストアドプロシージャってオーバーロードが出来ないんだろうね。
  • https://support.microsoft.com/ja-jp/help/164667

    babydaemons
    babydaemons 2012/07/06
    レプリケーションに使うポート番号を変更する方法
  • 使わなきゃ損! SQL Serverの新たな開発ツール「SQL Server Data Tools」

    新しい開発ツールの概要 SQL Serverを使用するシステムの開発者が、効率よく開発できるようにするために、新しいツールとプロジェクトがリリースされました。新たに提供されたツールは、SQL Server Data ToolsとSQL Server Express LocalDBです。SQL Server Data Toolsと合わせて、データベースプロジェクトが提供されています。 対象読者 SQL Serverを使用するアプリケーション設計、開発者 SQL Serverデータベース管理者 SQL Server 2012の新機能に興味のある方 必要な環境 Visual Studio 2010 SP1 SQL Server Data Toolsを単独で使用する場合は不要です。しかし、Visual Studio 2010がインストールされている環境では、単独使用はできず、Visual Stud

    使わなきゃ損! SQL Serverの新たな開発ツール「SQL Server Data Tools」
  • Rails 3, Ruby 1.9.2, Windows 2008, and SQL Server 2008 Tutorial –

    This took me a while to figure out, especially since I’m not so great with either windows or SQL server, but in the end the process isn’t so difficult. Rails 3, Ruby 1.9.2, Windows 2008, and SQL Server 2008 Screencast The steps covered in this screencast are: Create user Create database Give user permissions Create DSN Install ruby Install devkit (Needed to complie native extensions for ODBC) Crea

    babydaemons
    babydaemons 2011/10/22
    ODBC接続??
  • CONVERTを使いこなそう!! ~数値編~|ソフトウエア開発部(システム開発・システム設計 株式会社アイロベックス|東京都新宿区)

    SQL Serverのみを用いて数値をカンマ区切りで表示させたい という事があります。 しかし、思ったような関数がなかなか見つからない。 ひょっとするとあなたは今、カンマ区切りで困っていて たまたまこのページに辿り着いた方でしょうか? 実はCONVERT関数を利用すれば可能なのです ヘルプをよく読んで見ますと下の方に書かれています。 ただし、これを使うには少しばかりテクニックが必要です。 CONVERT関数にてカンマ区切りをするには以下の条件が必要です。 1.MONEY型である事 2.出力結果には小数点第二位まで表示されてしまう。 そこでひとつひとつクリアしていきましょう。 1.まずMONEY型に変換 CONVERT(MONEY,[項目名]) これで変換させたい値はMONEY型になりました 2.続いてVARCHAR型に変換してフォーマットを選択 CONVERT(varchar, CONVE

  • 整数値を3桁カンマ区切りに整形するユーザ定義関数 - babydaemons’ blog

    なんか昔エントリ書いた気がするんだけど、軽く検索したら見つからなかったので備忘録に残しておきます。 元ネタは こちらです↓ 解説もこちらです↓ CONVERTを使いこなそう!! ~数値編~|ソフトウエア開発部(システム開発・システム設計 株式会社アイロベックス|東京都新宿区) ソースを晒しておく CREATE FUNCTION [dbo].[FORMAT_COMMA](@value int) RETURNS varchar(20) AS BEGIN RETURN REPLACE(CONVERT(varchar(20), CAST(@value AS money), 1), '.00', '') END

    整数値を3桁カンマ区切りに整形するユーザ定義関数 - babydaemons’ blog
  • 第 3 章 「SELECT ステートメント(1)」 ~ 初めて学ぶ Transact-SQL ~

    表 1-1 SQL Server で使用できるワイルドカード (例1) 商品テーブルから商品名が 「~あんぱん」 である商品コードと商品名を取得する(画面 1-2)。 画面 1-2 商品名が「~あんぱん」である商品コードと商品名を取得(後方一致) (例 2) 顧客テーブルから顧客コードが「P~」 もしくは 「S~」 である顧客コードと顧客名を取得する (画面 1-3)。 画面 1-3 顧客コードが P か S で始まる顧客コードと顧客名を取得   (前方一致) ワイルドカードを使用する際の注意点は、ワイルドカード自身を含む文字列を検索したいケースの場合です。例えば商品テーブルから 「胚芽 50 % 入り~」 という % が含まれている商品を検索したい場合はどうすればいいでしょうか。この場合はワイルドカード文字を通常の文字として使用するための特殊な文字 (エスケープ文字) を宣言して検索を行

    第 3 章 「SELECT ステートメント(1)」 ~ 初めて学ぶ Transact-SQL ~
    babydaemons
    babydaemons 2011/05/25
    LIKEに文字セットが使えるのは忘れてた。#鈴木さんのピンクの馬、懐かしーw
  • 任意の基数の文字列を整数値に変換するユーザー定義関数 - babydaemons’ blog

    恥ずかしながら、再帰CTEを知らずに、 Doukaku.org - 知った元ネタ:16 進数から 10 進数への変換 - ぐるぐる~ をセンス無いと酷評して、渦巻きな人とちょっと喧嘩気味になっちゃいましたが、再利用性を考慮して個人的にはユーザ定義関数で実装しておきます。 ユーザー定義関数の実装は 無難にこんな感じですかね。SUBSTRING関数よりもCASE式の方がCPU負荷が軽そうですが、煩雑なのでズボラしました。 CREATE FUNCTION [dbo].[STRTONUM](@number_string varchar(64), @radix int) RETURNS int AS BEGIN DECLARE @digits varchar(64); SET @digits = UPPER(@number_string) DECLARE @N int; SET @N = LEN(@

    任意の基数の文字列を整数値に変換するユーザー定義関数 - babydaemons’ blog