SQL Server

SQL Serverのsqlcmdに引数を渡す

SQL Serverのsqlcmdで、コマンドラインからSQLを実行する場合に引数(スクリプト変数)を渡すには、-vオプションを使います。 sqlcmd -b -v foo=bar -i input.sql SQL文中では$(foo)として参照することができます。-bオプションを付けるとスクリプト変数が存在…

SQL Server 2008 ExpressEditionでのデータベースの"自動終了"オプション

SQL Serverにはデータベース毎に"自動終了"というオプションがあり([データベースのプロパティ] ([オプション] ページ))、自動終了を有効にしていると接続がなくなった時点で、データベースがシャットダウンされてリソースが解放されます。再度、接続がある…

フルテキスト検索サービスのエラー

SQL Server 2000のフルテキスト検索を使用しているシステムで以下のエラーが発生しました。 サーバー: メッセージ 7619、レベル 16、状態1、行、 フルテキスト操作を実行できませんでした。カタログが存在しないか、現在利用できません。.... 症状としては、…

ジョブやパッケージをコマンドラインから実行する

SQL Server Agentのジョブの実行 sp_start_job ストアドなので、以下のようにosqlやsqlcmdコマンドから呼び出します。 > sqlcmd -E -d msdb -Q "sp_start_job 'ジョブ名'" ジョブ 'ジョブ名' が正常に開始しました。 Integration Servicesのパッケージの実行…

sp_OACreateが失敗する

SQL Server2005にて。T-SQLからCOM オブジェクトを生成するための、sp_OACreateストアドプロシージャの実行に失敗する場合の対応方法です。実行時のエラーメッセージは以下のようなものでした。 Procedures' の プロシージャ 'sys.sp_OACreate' に対するアク…

SQL Server 2008 Express EditionではSQL Serverエージェントは使用不可

SQL Server 2008 の各エディションがサポートする機能 SQL Server 2008 Express Editionをインストールすると、構成マネージャにはSQL Serverエージェント"が表示されるので利用できると思っていたのですが、実はダメでした。開始するとエラーとなります。こ…

SQL Server2008フルテキスト検索でのエラー

SQL Server構成マネージャで、"SQL Full-text Filter Daemon Launcher"が起動しているのに、フルテキストクエリを実行するとエラーが発生する。 メッセージ 30046、レベル 16、状態 1、プロシージャ sp_fulltext_service、行 163 フルテキスト フィルタ デー…

SQL Server2008のFILESTREAMを使う

SQL Server2008の新機能であるFILESTREAMを使ってみます。FILESTREAMは、BLOB(SQL Serverでの型はvarbinary(max))のデータをデータベース内ではなく、ファイルシステム上のファイルとして保存する機能です。これまで、画像やPDFなどの保存は、 ファイル名の…

bcpでcsv出力

たまーに使おうと思うと忘れているのでメモしておきます。bcpコマンドで、SQL Serverのテーブルのデータを一括でcsvに出力するサンプルです。 bcp DB名.dbo.テーブル名 out "c:\log.txt" -c -t, -r\n -S サーバ名 -U ユーザ名 -P パスワード "-t,"でフィール…

統合認証を使ったJDBC接続

接続URLの構築 / Microsoft TechNet SQL Server 2005/2008で統合認証を使ってJDBC接続する方法です(Windows限定)。JDBCドライバはここからダウンロードします。2005用ですが2008でも使えます。そういえば、この前、最新版2.0のCTP版が出たみたいです。統合…

強力なパスワードのガイドライン

SQL Server 2008 Express Editionをインストールしてます。必要なソフトウェアが増えて、事前に以下のソフトウェアをインストールしておかなければならず結構大変です。 .NET Framework 3.5 SP1 Windows Power Shell Windows Installer 4.5 特に.NET Framewo…

「スナップインを初期化できませんでした」

SQL Server2000のEnterprise Managerを起動しようとしたところ、「スナップインを初期化できませんでした」という表示で起動できなくなってしまいました。。どうやら同じマシンのSQL Server2005をアンインストールしたのが影響していたようです。↓の事象のよ…

PreparedStatementのバインド変数の制限?

S2DaoからSQL Serverに対してクエリを実行した際に↓のような例外が発生しました。 com.microsoft.sqlserver.jdbc.SQLServerException: 着信の表形式のデータ ストリーム (TDS) リモート プロシージャ コール (RPC) プロトコル ストリームが不適切です。この …

SQL Server 2005 Express Editionでエージェント機能がなくなっている

あいかわらず、いまさら2005に反応しているのですが、SQL Server 2005 Express Editionでエージェント機能(ジョブを定時実行する機能)がなくなってるんですね。。 SQL Server 2005 Express Edition 概要

varchar(max)

いまさらですが、SQL Server2005から大きなサイズの文字列を入れるデータ型としてvarchar(max)が追加されました。これまでのtextに変わるものです。text型では文字列関数や"+"による操作ができなかったのですが、これがOKになり通常のvarchar(n)型との違いを…

XMLファイルを登録する

いままでXMLファイルをDBで管理・検索するのに、テーブルに検索対象としたい要素ごとのカラムを用意してインサートしていました。わりとフラットな構造のXMLだったのでそれほど困っていないのですが、SQL ServerにはXML型データとして持つこともできるので、…

接続パラメータに"selectMethod=cursor"が含まれるとバッチインサートに失敗する

FIX: You may receive an error message when you use the SQL Server 2005 Driver for JDBC and try to perform a batch insert by using a prepared statement that contains the "SelectMethod=cursor" property on a connection DBをSQL Server2005に変…

名前付きインスタンスへの接続

JDBCドライバからTCP/IPでSQL Serverの既定のインスタンスに接続する場合にはポートのデフォルトで1433ですが、名前付きインスタンスが使用するポートはデフォルトでは動的に決定されます。どのポートが使用されているかは、構成マネージャやストアドで確認…

SQL Server 2005のインストールに必要な.NET Framework2.0のセットアップの際に、コマンドラインオプションを指定して自動でインストールします。詳しくは↑のサイトにあるとおりですが、プログレスバーは表示したいので以下の様にしました。 dotnetfx.exe /q…

SQL Server2005 Express Editionをコマンドラインからのセットアップする

セットアップ時のオプションを指定してコマンドラインからのセットアップする方法。 コマンド プロンプトから SQL Server 2005 をインストールする方法 必要な情報は、ほとんどここにあります。 セットアップファイルの展開 SQLEXPR_ADV_JPN.EXEを実行すると…

SQL Server 2005

いまさらですが、私の担当している製品もやっとこさMSDEからSQL Server 2005 Express Editionに移行しようと思っています。MSDEでもいまだにそれほど困っていないのですが、SQ L Server2000では有償の製品でしか使えなかった↓の機能が目当てです Management …

bcpでDBのデータをcsvファイルに出力する

bcpはデータファイルの入出力のためのSQL Serverのコマンドラインツールです。今回、バッチファイルでDBのデータをcsvファイルに出力する必要があったので使いました(本当はExcelに出力したかったのですが)。以下参考です。出力のフォーマットの指定にはフ…

テーブルは存在するのにアクセスできない

最近ちょっと困った現象。SQL Server2000でクエリアナライザで作成したテーブルが、クエリアナライザやEnterpriseManagerからはアクセスできるが、 Javaのプログラム(S2DAO)からはテーブルが見つからずアクセスできないという状態に。。データ作成時のコマ…

データベースミラーリングの設定できました

やっとこさ、SQL Server2005のデータベースミラーリングの設定ができました。 ウィザードからミラーリングの設定を行い、ミラーリングを開始しようとすると、以下のエラーが発生してしまうという問題だったのですが、、 サーバー ネットワーク アドレス "TCP…

SQL Server 2005メンテナンスプラン

SQL Server 2000 での「データベース保守計画」は、2005 では、「メンテナンスプラン」になっているのですね。データベースのバックアップのスケジュールを設定した際にちょっと迷った点。2000では、古くなったデータベースファイルの削除は、データベース保…

Microsoft SQL Server 2005 JDBC Driver 1.1

出てます。 Microsoft SQL Server 2005 JDBC Driver 1.1

ミラーリングの手動フェイルオーバー

手動でフェイルオーバーするには、プリンシパルサーバで以下の命令を実行します。 ALTER DATABASE SET PARTNER プリンシパルサーバに障害が発生した場合には、これはできないので、その場合にはミラーサーバで以下の命令を実行し、強制的にミラーサーバを有…

データベース ミラーリングの設定方法(4)

データベース ミラーリングの設定方法(3) 何かセキュリティ関係の設定に問題があるのだろうと思ったのですが、結局エラー メッセージ 1418 が発生する理由がよくわかりませんでした。なので、以下を参照に証明書を使用する方法で設定しました。データベー…

Accessでテーブルにリンクすると、データがすべて"#Deleted"と表示される

SQL Server 2000のテーブルに、AccessからODBC経由でリンクして内容を表示すると、件数はあっているのですが、データがすべて"#Deleted"と表示されてしまいました。。[ACC2002]リンクされた ODBC テーブルで"#Deleted"エラー発生これっぽいです。 結局、プ…

データベース ミラーリングの設定方法(3)

データベース ミラーリングの設定方法(2) にて、エラーが発生してミラーのDBが削除もデタッチもできない状態になってしまう、と書いたのですが、ミラーの解除については、↓の命令を実行することで可能です。 ALTER DATABASE TestDB SET PARTNER OFF デー…