<?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/"
	>

<channel>
	<title>simple idea &#187; DB</title>
	<atom:link href="http://www.k14a.net/archives/category/db/feed" rel="self" type="application/rss+xml" />
	<link>http://www.k14a.net</link>
	<description>simple is beautiful</description>
	<lastBuildDate>Tue, 10 Aug 2010 08:55:55 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.0.1</generator>
		<item>
		<title>SQL Serverのインポートにハマる</title>
		<link>http://www.k14a.net/archives/190</link>
		<comments>http://www.k14a.net/archives/190#comments</comments>
		<pubDate>Sun, 17 May 2009 13:59:30 +0000</pubDate>
		<dc:creator>moriken</dc:creator>
				<category><![CDATA[DB]]></category>
		<category><![CDATA[SQL Server]]></category>

		<guid isPermaLink="false">http://www.k14a.net/?p=190</guid>
		<description><![CDATA[

フロントエンドがAccess2003、バックエンドがWindows NT Server + SQL Server7で稼動しているシステムのバックエンドをWindows 2008 Server(64bit) + SQL [...]]]></description>
			<content:encoded><![CDATA[
<div class="topsy_widget_data topsy_theme_blue" style="float: right;margin-left: 0.75em; background: url(data:,%7B%20%22url%22%3A%20%22http%253A%252F%252Fwww.k14a.net%252Farchives%252F190%22%2C%20%22style%22%3A%20%22small%22%2C%20%22title%22%3A%20%22SQL%20Server%E3%81%AE%E3%82%A4%E3%83%B3%E3%83%9D%E3%83%BC%E3%83%88%E3%81%AB%E3%83%8F%E3%83%9E%E3%82%8B%22%20%7D);"></div>
<p>フロントエンドがAccess2003、バックエンドがWindows NT Server + SQL Server7で稼動しているシステムのバックエンドをWindows 2008 Server(64bit) + SQL Server 2008へ移行する仕事をしている。</p>
<p>基本的には、本社で環境構築&amp;動作確認とAccess2003の小修正を行い、客先へ納品する。本社での作業についてはほぼ終了し、客先へ設置を行い、最終的に現在稼動している旧DBの内容を新DBへインポートをおこなう。</p>
<p>SQL Serverには、インポートプログラムがあるので、ネットワーク上にある旧DBのデータを新DBへ一気にインポートを行うことができる。幸いデータ量もあまり多くはないので、インポート自体は約10分程で終了。あとは、ユーザによる動作確認を行ってもらう段階を残すのみとなった。</p>
<p>が、ユーザの確認を開始した直後に、Accessのエラーメッセージが表示され、クエリが実行できないらしい。調べてみると、旧DBではvarchar(255)のフィールドが、新DBではnvarchar(510)になっていることが原因と判明。最初は、64ビットのインポートツールを使っているから勝手に拡張されたのかと思い、32ビットのインポートツールでやってみても結果は同じ。</p>
<p>念のため、インポート時にエラーが発生しているカラムのサイズを手動で255にするとエラーが出なくなったことから、このデータサイズ変換が原因であることは間違いない……ことまではわかったが、今日は時間切れで終了。</p>
<p>そもそも、nvarcharとは何か調べてみると、</p>
<blockquote><p><a href="http://msdn.microsoft.com/ja-jp/library/ms186939.aspx">nchar および nvarchar (Transact-SQL)</a><br />
固定長 (nchar) または可変長 (nvarchar) の Unicode データで、UNICODE UCS-2 文字セットを使用する文字データ型です。</p></blockquote>
<p>で、数値にはサイズ(バイト数)ではなく、<span style="color: #ff0000;">桁数</span>を指定するらしい。と、言うことは文字をUnicodeで格納するために桁数を拡張したため、AccessではJoinできなくなった模様。<br />
回避策としては、新DBの文字コードをCP932にするか、インポート時にカラムのサイズを255にするかしかないのかなぁ…。</p>
<p>問題が発生している箇所は、コードを入れているので、255桁も使用することがないようなので、たぶん問題はないと考えている。<br />
そもそもなんでコードにvarchar(255)なんて指定の仕方をしているんだ?当時の設計者出て来い!!</p>
<p>桁数固定のコードには、char(桁数)を使うのが普通(百歩譲ってvarchar(桁数))と思っている自分は古い人間?</p>

]]></content:encoded>
			<wfw:commentRss>http://www.k14a.net/archives/190/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>大規模データベースの“定説”をバッサリ切る</title>
		<link>http://www.k14a.net/archives/4388</link>
		<comments>http://www.k14a.net/archives/4388#comments</comments>
		<pubDate>Tue, 11 Jul 2006 03:00:01 +0000</pubDate>
		<dc:creator>moriken</dc:creator>
				<category><![CDATA[DB]]></category>

		<guid isPermaLink="false">http://www.k14a.net/?p=4388</guid>
		<description><![CDATA[

どのへんが「バッサリ」なんだろう?そうか、これは前編だから後編でばっさりするんだなぁ…きっと。

]]></description>
			<content:encoded><![CDATA[
<div class="topsy_widget_data topsy_theme_blue" style="float: right;margin-left: 0.75em; background: url(data:,%7B%20%22url%22%3A%20%22http%253A%252F%252Fwww.k14a.net%252Farchives%252F4388%22%2C%20%22style%22%3A%20%22small%22%2C%20%22title%22%3A%20%22%3Ca%20href%3D%5C%22http%3A%2F%2Fwww.atmarkit.co.jp%2Ffdb%2Fsingle%2F08_bi1%2F08_bi1_01.html%5C%22%20title%3D%5C%22%E5%A4%A7%E8%A6%8F%E6%A8%A1%E3%83%87%E3%83%BC%E3%82%BF%E3%83%99%E3%83%BC%E3%82%B9%E3%81%AE%E2%80%9C%E5%AE%9A%E8%AA%AC%E2%80%9D%E3%82%92%E3%83%90%E3%83%83%E3%82%B5%E3%83%AA%E5%88%87%E3%82%8B%5C%22%3E%E5%A4%A7%E8%A6%8F%E6%A8%A1%E3%83%87%E3%83%BC%E3%82%BF%E3%83%99%E3%83%BC%E3%82%B9%E3%81%AE%E2%80%9C%E5%AE%9A%E8%AA%AC%E2%80%9D%E3%82%92%E3%83%90%E3%83%83%E3%82%B5%E3%83%AA%E5%88%87%E3%82%8B%3C%2Fa%3E%22%20%7D);"></div>
<p>どのへんが「バッサリ」なんだろう?そうか、これは前編だから後編でばっさりするんだなぁ…きっと。</p>

]]></content:encoded>
			<wfw:commentRss>http://www.k14a.net/archives/4388/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
