<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
		xmlns:xhtml="http://www.w3.org/1999/xhtml"
>

<channel>
	<title>tdtshのブログ &#187; sqlserver</title>
	<atom:link href="http://www.tdtsh.com/blog/archives/category/sqlserver/feed" rel="self" type="application/rss+xml" />
	<link>http://www.tdtsh.com/blog</link>
	<description>java とか ソーシャルウェブとか Google App Engine とかの事の備忘録</description>
	<lastBuildDate>Thu, 29 Jul 2010 06:39:39 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.8</generator>
	<language>ja</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<xhtml:link rel="alternate" media="handheld" type="text/html" href="http://www.tdtsh.com/blog/archives/category/sqlserver/feed" />
		<item>
		<title>Access 2010 では DBエンジンに SQL Azure が使える様になる</title>
		<link>http://www.tdtsh.com/blog/archives/679</link>
		<comments>http://www.tdtsh.com/blog/archives/679#comments</comments>
		<pubDate>Tue, 15 Jun 2010 02:03:26 +0000</pubDate>
		<dc:creator>tdtsh</dc:creator>
				<category><![CDATA[DBA]]></category>
		<category><![CDATA[oracle]]></category>
		<category><![CDATA[sqlserver]]></category>
		<category><![CDATA[クラウド]]></category>

		<guid isPermaLink="false">http://www.tdtsh.com/blog/?p=679</guid>
		<description><![CDATA[
マイクロソフトのAccess 2010では、ODBCを通じてクラウド上のリレーショナルデータベースであるSQL Azureに直接接続可能だと、MS Officeチームのブログのエントリ「Access 2010 and  [...]]]></description>
			<content:encoded><![CDATA[<blockquote><p>
マイクロソフトのAccess 2010では、ODBCを通じてクラウド上のリレーショナルデータベースであるSQL Azureに直接接続可能だと、MS Officeチームのブログのエントリ「Access 2010 and SQL Azure」で紹介されています。<br />
Access 2010 and SQL Azure &#8211; Microsoft Access &#8211; Site Home &#8211; MSDN Blogs</p>
<p>この機能を使えば、社内でSQL Serverの運用をすることなく、Access 2010から大規模なリレーショナルデータベースの機能を利用することができるようになります。」
</p></blockquote>
<p><a href="http://www.publickey1.jp/blog/10/access_2010odbcsql_azure.html" onclick="javascript:urchinTracker ('/outbound/article/www.publickey1.jp');">Access 2010からODBCでクラウドのSQL Azureに接続可能。そのメリットは？</a></p>
<p>JetエンジンのままAccessを多人数で使うのは、排他制御の面でも、性能の面でも、あまり宜しくないんですけど、現場によっては結構重宝されていますよね。</p>
<p>自動でシュリンクしないからファイルがどんどん肥大化するし、しょっちゅう壊れるし。<br />
せめてMSDE、今で言うとSQL Server Express Editionですかね、を使って欲しい訳です。</p>
<blockquote><p>
データベース管理者にとっては、SQL Serverのデータメンテナンスなど管理業務をAccessから行うことでずっと便利になるという指摘もいただきました。たしかに、それもぐっと楽になりそうです。
</p></blockquote>
<p>ODBCドライバさえあれば、OracleでもDB2でもデータ管理は出来ますね。<br />
SQL大好きな私にとってAccessのクエリを使うのは苦痛なんですけど、エンドユーザにはGUIで操作できるAccessは結構使いやすいみたいですね。</p>
<p>RDMBSはコモディティ化した感があります。<br />
今後のデータストアのプラットフォームは、完全にクラウド上での覇権争いになってきました。<br />
KVSで無くRDBMSじゃ無いと駄目な案件を、SQL Azure と VM Forceが受け皿になっていきそうな予感。</p>
<p>どうするOracle陣営。</p>
]]></content:encoded>
			<wfw:commentRss>http://www.tdtsh.com/blog/archives/679/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<xhtml:link rel="alternate" media="handheld" type="text/html" href="http://www.tdtsh.com/blog/archives/679" />
	</item>
		<item>
		<title>SQL Server 2000 (2005, 2008でも多分可)でインデックスの再構築</title>
		<link>http://www.tdtsh.com/blog/archives/440</link>
		<comments>http://www.tdtsh.com/blog/archives/440#comments</comments>
		<pubDate>Tue, 27 Oct 2009 05:00:24 +0000</pubDate>
		<dc:creator>tdtsh</dc:creator>
				<category><![CDATA[sqlserver]]></category>

		<guid isPermaLink="false">http://www.tdtsh.com/blog/?p=440</guid>
		<description><![CDATA[SQL Server 2000時代に、インデックスの再構築といえば
	dbcc dbreindex
でしたが、このコマンドは将来なくなる様ですね。
かわりに、alter index rebuild を使えとの事。
reb [...]]]></description>
			<content:encoded><![CDATA[<p>SQL Server 2000時代に、インデックスの再構築といえば</p>
<p>	dbcc dbreindex</p>
<p>でしたが、このコマンドは将来なくなる様ですね。<br />
かわりに、alter index rebuild を使えとの事。<br />
rebuild句が、dbreindexと同じ機能です。<br />
all on を指定しないと、非クラスタ化インデックスは再構築されないそうな。</p>
<p>alter index all on テーブル名 rebuild</p>
<p><a href="http://www.mag2qa.com/qa1324554.html" onclick="javascript:urchinTracker ('/outbound/article/www.mag2qa.com');">参考サイト</a>を元に、新たなストアドを作った。</p>
<pre>
USE MASTER
GO

create procedure sp_reindex as

DECLARE @tablename varchar(30)

DECLARE tables CURSOR FOR
SELECT name FROM sysobjects WHERE type = 'U'
OPEN tables

FETCH NEXT FROM tables INTO @tablename
WHILE (@@fetch_status <> -1)
BEGIN
	Execute ('ALTER INDEX ALL ON' + @tablename + ' REBUILD')
	FETCH NEXT FROM tables INTO @tablename
END
DEALLOCATE tables
GO

USE YOUR_DATABASE
exec SP_REINDEX
</pre>
]]></content:encoded>
			<wfw:commentRss>http://www.tdtsh.com/blog/archives/440/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<xhtml:link rel="alternate" media="handheld" type="text/html" href="http://www.tdtsh.com/blog/archives/440" />
	</item>
		<item>
		<title>MS SQL Server 2000について、 2002年頃に書いたメモ</title>
		<link>http://www.tdtsh.com/blog/archives/226</link>
		<comments>http://www.tdtsh.com/blog/archives/226#comments</comments>
		<pubDate>Thu, 06 Aug 2009 04:28:39 +0000</pubDate>
		<dc:creator>tdtsh</dc:creator>
				<category><![CDATA[DBA]]></category>
		<category><![CDATA[sqlserver]]></category>

		<guid isPermaLink="false">http://www.tdtsh.com/blog/?p=226</guid>
		<description><![CDATA[ロックアーキティクチャ
ロックの自動エスカレーション
SQL Server 2000のロックは、動的にロック方法を自動判断して行われる。
	行ロック・ページロック・DBロック
上記のチューニングとしてMS SQLでは&# [...]]]></description>
			<content:encoded><![CDATA[<h3>ロックアーキティクチャ</h3>
<h4>ロックの自動エスカレーション</h4>
<p>SQL Server 2000のロックは、動的にロック方法を自動判断して行われる。</p>
<p>	行ロック・ページロック・DBロック</p>
<p>上記のチューニングとしてMS SQLでは&#8221;分離レベル&#8221;の設定 が4つある。<br />
下に行くほどデータの整合性が上がるが、デッドロックが起こりやすくなる。<br />
OLTPの場合、余程大勢でInsert、Updateをしない限り、デフォルトでいいんじゃないかと思う。<br />
トランザクションを使用する場合は、明示的に 3) を選択 (後述) する場合もあるかも知れない。<br />
但し、トランザクションは短めに。</p>
<p>  1) READ UNCOMMIITTED<br />
    ユルユル。ダーティリード可能</p>
<p>  2) READ COMMITTED<br />
    コミット済み読み取り (SQL Server の既定の分離レベル)</p>
<p>  3) REPEATABLE READ </p>
<p>  4) SERIALIZABLE<br />
    直列化 (各トランザクションが完全に分離される最高の分離レベル) </p>
<h4>明示的なロック</h4>
<p>ロックは明示的にもできる。ロックヒントと呼ばれるモノをSQLステートメントに挿入ればいい。</p>
<pre>
   SELECT * FROM TABLE_NAME  WITH (ROWLOCK) WHERE FIELD_NAME = 'hoge'
</pre>
<p>WITHのとこのロック種類はこんなにある。</p>
<ul>
<li>FASTFIRSTROW</li>
<li>HOLDLOCK</li>
<li>NOLOCK</li>
<li>PAGLOCK</li>
<li>READCOMMITTED</li>
<li>READPAST</li>
<li>READUNCOMMITTED</li>
<li>REPEATABLEREAD</li>
<li>ROWLOCKSERIALIZABLE</li>
<li>TABLOCK</li>
<li>TABLOCKX</li>
<li>UPDLOCK</li>
</ul>
<h4>ロック競合</h4>
<p>ロックが競合した時のタイムアウト設定があるらしい。</p>
<pre>
    SET LOCK_TIMEOUT [timeout_period(ミリ秒単位)]デフォルト0ミリ秒
</pre>
<p>と言う事は、トランザクションが失敗した時の処理をキチンと実装しなければ(ロールバック->コネクトクローズ)、タイムアウトまで待ちっぱなしになると言う事になると言う事だろうか。</p>
<p>ロックの状況は、エンタープライズマネージャで確認できる。ストアドプロシージャ(sp_lock)、master.syslockinfoテーブルでも確認できる。</p>
<p>参考サイト<br />
<a href="http://www.itmedia.co.jp/enterprise/0207/05/02070501.html" onclick="javascript:urchinTracker ('/outbound/article/www.itmedia.co.jp');">ZDNet SQL Serverのデットロックを防ぎ同時実行性を向上させよう</a></p>
<p><a href="http://msdn.microsoft.com/ja-jp/library/cc707374.aspx" onclick="javascript:urchinTracker ('/outbound/article/msdn.microsoft.com');">トランザクション分離レベルの選択とデッドロックの問題～ SQL Server 2000 における Web アプリケーション開発 ～</a></p>
<h3>テーブル増時のパフォーマンスは？インデックス vs DB分割</h3>
<p>RDBMSをスケールさせる為に、データを垂直分割したいときがある。<br />
それに備えて、DB設計時から垂直分割するのは是か非か。<br />
SQL Serverは1つのインスタンスに複数のデータベースが作れる。<br />
貧乏なウチは、1つの物理サーバかつインスタンスで、複数のデータベースを作って、データを垂直分割し、アプリケーション側で何の工夫もせずに、SQLだけで検索できなくもない。<br />
例えば、2億レコードの単一DB と、 10万レコードの200個のデータベースとで、どれ位のパフォーマンスの差がでるだろう。<br />
一般的に、テーブルが分かれると発行するSQL文が増える為、パフォーマンスが低下するのだけど、設計とSQLの作りにもよるし、実際に検証しなければわからない。<br />
時間があれば一度検証してみたい。</p>
<h3>物理ディスク構成</h3>
<p>最低でも、データベースファイルとトランザクションログファイルは物理的に分けたい。<br />
SANにデータベースファイル、ローカルHDDにトランザクションログファイルとか。</p>
<h3>APIはあるの</h3>
<p>ある。BOL参照。インストール時にカスタムを選択し、開発ツールを選択すると、スクリプトのサンプルもインストールされる。</p>
<h3>phpからデータベースサーバへの接続方法(ミドルウェア)</h3>
<p>MS SQL Serverの接続方法には色々あるが、PHPでの使用となると、ODBC関数の使用もしくはMS SQL関数の使用の2つが用意されている。</p>
<p>下記2つのパフォーマンスの善し悪しは、比較検証して見ないと分からない。</p>
<p>1)MS SQL関数<br />
MS SQL関数は、MS SQLクライアントツール&#8221;ntwdblib.dll&#8221;を必要とする。<br />
このモジュールは、DB-Libraryと呼ばれる呼び出しインターフェースで、MS SQL Server6.5の頃の古いAPIである。下位互換の為に用意されているようで、MS SQL Server2000で用意された新機能を使う事が出来ないらしい。Unicodeにも非対応である(非対応の意味が良く分からないが)。</p>
<p>2)ODBC関数<br />
ODBC3.7以上では、Unicodeをサポートするようだ。(要検証)<br />
正確には、MDAC 2.1以上 または SQL Server ODBC ドライバ (バージョン 3.70.0623 以降) または OLEDB プロバイダ (バージョン 7.01.0623 以降(MS KB JP234748)。<br />
MS SQL Serverをインストールすると、MDAC2.6がインストールされるようだ。</p>
]]></content:encoded>
			<wfw:commentRss>http://www.tdtsh.com/blog/archives/226/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<xhtml:link rel="alternate" media="handheld" type="text/html" href="http://www.tdtsh.com/blog/archives/226" />
	</item>
		<item>
		<title>SQL Server 2000 の ハードウェア障害の際の予備機への復旧手順</title>
		<link>http://www.tdtsh.com/blog/archives/40</link>
		<comments>http://www.tdtsh.com/blog/archives/40#comments</comments>
		<pubDate>Wed, 10 Jun 2009 04:36:31 +0000</pubDate>
		<dc:creator>tdtsh</dc:creator>
				<category><![CDATA[DBA]]></category>
		<category><![CDATA[sqlserver]]></category>

		<guid isPermaLink="false">http://www.tdtsh.com/blog/?p=40</guid>
		<description><![CDATA[
 前提条件
 本番機でオンラインバックアップを取得しており、そのバックアップファイルがある
 本番機の *.ldf を取得できる
 予備機に SQL Server2000 がインストールされており、サービスパック、Ho [...]]]></description>
			<content:encoded><![CDATA[<div class="section">
<h4> 前提条件</h4>
<h5> 本番機でオンラインバックアップを取得しており、そのバックアップファイルがある</h5>
<h5> 本番機の *.ldf を取得できる</h5>
<h5> 予備機に SQL Server2000 がインストールされており、サービスパック、HotFixが本番機と同様に適用されている</h5>
<h5> *.ldfのPATHは C:\SQL_DATA </h5>
<h5> *.mdfのPATHは F:\SQL_DATA </h5>
<h5> オンライン・フルバックアップがC:\SQL_BK\FULL にある</h5>
<h5> オンライン・トランザクションログバックアップがC:\SQL_BK\TRAN にある</h5>
<p></p>
<h4> 工程1 クラッシュした本番機から、トランザクションログファイル(*.ldf)の取得</h4>
<h5> クラッシュした本番機のHDDを他サーバに接続する等して、本番機の*.ldfファイルを取得する。</h5>
<p>	※本番機の*.ldf ファイルの有無で、リカバリポイントが決まる。</p>
<p>	*.ldfが有る -&#62; 障害発生時点までリカバリ可能。</p>
<p>	*.ldfが無い -&#62; 障害発生時点までのリカバリ不可、巻き戻りが発生する。</p>
<p></p>
<h4> 工程2 オンラインバックアップファイルの確認</h4>
<h5> オンラインバックアップファイルが存在する事、およびファイルシステム上の更新日時を確認する</h5>
<pre>
userdb1.BAK
userdb2.BAK
userdb3.BAK
master_full.BAK
model.BAK▲
msdb.BAK▲
</pre>
<p>	▲印はシステムデータベースに付き、復旧出来なくても影響が軽微(ジョブが消えてしまう程度)なので無くても構わない</p>
<h5> トランザクションログのオンラインバックアップファイルが存在する事、およびファイルシステム上の更新日時を確認する</h5>
<pre>
userdb1_transaction.BAK
userdb2_transaction.BAK
userdb3_transaction.BAK
</pre>
<p></p>
<h4> 工程3 既存のデータベースファイルの移動</h4>
<p>	MSSQLSERVERサービスを停止し、データベースファイル達を、任意のディレクトリに移動する。</p>
<pre>
mkdir "C:\SQL_DATA\old"
mkdir F:\SQL_DATA\old
move C:\SQL_DATA\*.ldf "C:\SQL_DATA\old"
move F:\SQL_DATA\*.mdf F:\SQL_DATA\old
</pre>
<p></p>
<h4> 工程4 masterの再構築</h4>
<h5> シングルユーザモードで起動する</h5>
<pre>
"C:\Program Files\Microsoft SQL Server\MSSQL\Binn\sqlservr.exe" -m -c
</pre>
<h5> masterを再構築する</h5>
<pre>
restore database master from disk= 'C:\SQL_BK\FULL\master_full.BAK'
go
</pre>
<h4> 工程5 クラッシュ時点までのトランザクションログのバックアップを取得する</h4>
<h5> 本番機の最新の*.ldfを、本番機と同一パス(C:\SQL_DATA\)にコピー※する</h5>
<p>	※リストアに失敗したらデータが消えてしまうので、必ず移動ではなくコピーにする</p>
</p>
<h5> 予備機のMSSQLSERVERサービスを起動する</h5>
<h5> Enterprize Managerにて&#8217;sa&#8217;ユーザで接続し、各データベースの灰色のアイコン(未確認)があるか確認する</h5>
<h5> 最新トランザクションログをバックアップ	</h5>
<p>	※2回やっちゃ駄目。やったら工程4からやりなおし	</p>
<pre>
backup log [userdb1] to disk='C:\SQL_BK\TRAN\userdb1_last_tran.bak' with no_truncate
go
backup log [userdb2] to disk='C:\SQL_BK\TRAN\userdb2_last_tran.bak' with no_truncate
go
backup log [userdb3] to disk='C:\SQL_BK\TRAN\userdb3_last_tran.bak' with no_truncate
go
</pre>
<h4> 工程6 システムデータベース(modelとmsdb)のりストア</h4>
<pre>
restore database [model] from disk='C:\SQL_BK\FULL\model.BAK' with file = 1, recovery, replace
go
restore database [msdb] from disk='C:\SQL_BK\FULL\msdb.BAK' with file = 1, recovery, replace
go
</pre>
<h4> 工程7 フルバックアップをリストア</h4>
<pre>
restore database [userdb1] from disk='C:\SQL_BK\FULL\userdb1.BAK' with file = 1, norecovery, replace
go
restore database [userdb2] from disk='C:\SQL_BK\FULL\userdb2.BAK' with file = 1, norecovery, replace
go
restore database [userdb3] from disk='C:\SQL_BK\FULL\userdb3.BAK' with file = 1, norecovery, replace
go
</pre>
<h4> 工程8 トランザクションログの復旧</h4>
<h5> 前回のフルバックアップ取得時点から、1度でもトランザクションログバックアップを行っていた場合に必要</h5>
<pre>
declare @i int
set @i = 1
while @i &#60;= 3
begin
restore log [userdb1] from disk='C:\SQL_BK\TRAN\userdb1_transaction.BAK'
with file = @i, norecovery, replace
restore log [userdb2] from disk='C:\SQL_BK\TRAN\userdb2_transaction.BAK'
with file = @i, norecovery, replace
restore log [userdb3] from disk='C:\SQL_BK\TRAN\userdb3_transaction.BAK'
with file = @i, norecovery, replace
set @i = @i + 1
end
</pre>
<p></p>
<h5>  以下のようなエラーが表示されても無視する</h5>
<pre>
デバイス 'C:\SQL_BK\TRAN\userdb1_transaction.BAK' にファイル ID 7 が見つかりません。
サーバー : メッセージ 3013、レベル 16、状態 1、行 21
RESTORE LOG が異常終了しました。
</pre>
<p></p>
<h4> 工程9 最後のトランザクション(工程5で取得)を復旧</h4>
<pre>
restore log [userdb1] from disk='C:\SQL_BK\TRAN\userdb1_last_tran.bak' with norecovery
restore log [userdb2] from disk='C:\SQL_BK\TRAN\userdb2_last_tran.bak' with norecovery
restore log [userdb3] from disk='C:\SQL_BK\TRAN\userdb3_last_tran.bak' with norecovery, stopat='2009-06-10 10:00:00'
go
</pre>
<h4> 工程10 データベースを有効化</h4>
<pre>
restore database [userdb1] with recovery
restore database [userdb2] with recovery
restore database [userdb3] with recovery
go
</pre>
<p></p>
<h4> 工程11 復旧後処理</h4>
<h5> SQL認証のGIDを確認する</h5>
<p>use [userdb1]</p>
<p>go</p>
<p>select 	m.sid as master_sid ,a.sid as account_sid ,m.name as master_name ,a.name as accouunt_name</p>
<p>from master.dbo.sysusers as m </p>
<p>right outer join sysusers as a on a.name = m.name</p>
<p>where m.sid is not null</p>
<p>GO</p>
<h5>  本番機のNT認証を削除する</h5>
<p>exec sp_revokelogin &#8216;本番機\Administrator&#8217;</p>
<p>GO</p>
<p></p>
<h5>  各データベース認証を削除する</h5>
<p>use [userdb1]</p>
<p>exec sp_revokedbaccess &#8216;user_a&#8217;</p>
<p>exec sp_revokedbaccess &#8216;user_b&#8217;</p>
<p>exec sp_revokedbaccess &#8216;Administrator&#8217;</p>
<p>use [userdb2]</p>
<p>exec sp_revokedbaccess &#8216;user_a&#8217;</p>
<p>exec sp_revokedbaccess &#8216;user_b&#8217;</p>
<p>exec sp_revokedbaccess &#8216;Administrator&#8217;</p>
<p>use [userdb3]</p>
<p>exec sp_revokedbaccess &#8216;user_a&#8217;</p>
<p>exec sp_revokedbaccess &#8216;user_b&#8217;</p>
<p>exec sp_revokedbaccess &#8216;Administrator&#8217;</p>
<p>use [master]</p>
<p>exec sp_revokedbaccess &#8216;user_a&#8217;</p>
<p>exec sp_revokedbaccess &#8216;user_b&#8217;</p>
<p>exec sp_revokedbaccess &#8216;Administrator&#8217;</p>
<p>use [model]</p>
<p>exec sp_revokedbaccess &#8216;user_a&#8217;</p>
<p>exec sp_revokedbaccess &#8216;user_b&#8217;</p>
<p>exec sp_revokedbaccess &#8216;Administrator&#8217;</p>
<p>use [msdb]</p>
<p>exec sp_revokedbaccess &#8216;user_a&#8217;</p>
<p>exec sp_revokedbaccess &#8216;user_b&#8217;</p>
<p>exec sp_revokedbaccess &#8216;Administrator&#8217;</p>
<h5> 予備機のNT認証を登録する</h5>
</div>
]]></content:encoded>
			<wfw:commentRss>http://www.tdtsh.com/blog/archives/40/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<xhtml:link rel="alternate" media="handheld" type="text/html" href="http://www.tdtsh.com/blog/archives/40" />
	</item>
		<item>
		<title>SQL Server 2000で、2つあるldfを1つにする</title>
		<link>http://www.tdtsh.com/blog/archives/10</link>
		<comments>http://www.tdtsh.com/blog/archives/10#comments</comments>
		<pubDate>Sun, 17 May 2009 01:00:53 +0000</pubDate>
		<dc:creator>tdtsh</dc:creator>
				<category><![CDATA[DBA]]></category>
		<category><![CDATA[sqlserver]]></category>

		<guid isPermaLink="false">http://www.tdtsh.com/blog/?p=10</guid>
		<description><![CDATA[
SQL Server 2000で、2つあるldfを1つにする
use [database_name]
go
checkpoint
exec sp_dboption &#8216;table_name&#8217;, &#038; [...]]]></description>
			<content:encoded><![CDATA[<div class="section">
<p>SQL Server 2000で、2つあるldfを1つにする</p>
<p>use [database_name]</p>
<p>go</p>
<p>checkpoint</p>
<p>exec sp_dboption &#8216;table_name&#8217;, &#8216;trunc. log on chkpt.&#8217;, &#8216;TRUE&#8217;</p>
<p>dbcc shrinkfile( &#8216;table_name_log_d&#8217; , emptyfile )</p>
<p>alter database [table_name] remove file &#8216;table_name_log_d&#8217;</p>
<p>go</p>
<p>
<div style="margin-bottom:0px;" class="amazlet-box">
<div style="float:left;" class="amazlet-image"><a href="http://www.amazon.co.jp/exec/obidos/ASIN/4891002603/tdtsh-22/ref=nosim/"target="_blank"  name="amazletlink" onclick="javascript:urchinTracker ('/outbound/article/www.amazon.co.jp');"><img alt="アーキテクチャ徹底解説Microsoft SQL Server 2000 (マイクロソフト公式解説書)" src="http://ecx.images-amazon.com/images/I/51AWR8XX0DL._SL160_.jpg" style="border: none;"></a></div>
<div style="float:left;margin-left:15px;line-height:120%" class="amazlet-info">
<div style="margin-bottom:10px;line-height:120%" class="amazlet-name"><a href="http://www.amazon.co.jp/exec/obidos/ASIN/4891002603/tdtsh-22/ref=nosim/"target="_blank"  name="amazletlink" onclick="javascript:urchinTracker ('/outbound/article/www.amazon.co.jp');">アーキテクチャ徹底解説Microsoft SQL Server 2000 (マイクロソフト公式解説書)</a>
<div style="font-size:7pt;margin-top:5px;font-family:verdana;line-height:120%" class="amazlet-powered-date">posted with <a href="http://www.amazlet.com/browse/ASIN/4891002603/tdtsh-22/ref=nosim/"target="_blank"  title="アーキテクチャ徹底解説Microsoft SQL Server 2000 (マイクロソフト公式解説書)" onclick="javascript:urchinTracker ('/outbound/article/www.amazlet.com');">amazlet</a> at 09.05.20</div>
</div>
<div class="amazlet-detail">カレン デレーニ <br />日経BPソフトプレス <br />売り上げランキング: 328654</div>
<div style="margin-top: 5px" class="amazlet-link"><a href="http://www.amazon.co.jp/exec/obidos/ASIN/4891002603/tdtsh-22/ref=nosim/"target="_blank"  name="amazletlink" onclick="javascript:urchinTracker ('/outbound/article/www.amazon.co.jp');">Amazon.co.jp で詳細を見る</a></div>
</div>
<div style="clear: left" class="amazlet-footer"></div>
</div>
</div>
]]></content:encoded>
			<wfw:commentRss>http://www.tdtsh.com/blog/archives/10/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<xhtml:link rel="alternate" media="handheld" type="text/html" href="http://www.tdtsh.com/blog/archives/10" />
	</item>
	</channel>
</rss>
