- ベストアンサー
SQLServer2008での1レコードバイト数の上限を増やしたい
こんにちは、いつも参考にさせていただいております。 通常1レコードのバイト数の上限は8060ですが、 それがSQLServer2008あたりから緩和されたと聞きました。 そこでマイクロソフトのTechNetを見ましたがよくわかりませんでした。 2つわからない点がありますのでご教授どうかお願いいたします。 ◆疑問点(1)◆ ↓で8060バイト上限が緩和できそうだと思った中での疑問です。 マイクロソフトのTechNet 「8 KB を超える場合の行オーバーフロー データ」 http://msdn.microsoft.com/ja-jp/library/ms186981.aspx 「これら(varchar 型、nvarchar 型、varbinary 型、sql_variant 型、またはCLR ユーザー定義型)の列の長さは、単独の場合は引き続き 8,000 バイトに制限されますが、組み合わせた場合は 8,060 バイトの制限を超えることができます。」 わからないのは、上記文章中にある「組み合わせた場合」というポイントです。 ○varchar 型とnvarchar 型、varbinary 型とsql_variant 型というように違う種類を組み合わせなければ8060バイト制限が越えられないのでしょうか? ◆疑問点(2)◆ 「8 KB を超える場合の行オーバーフロー データ」ページ内でntext型などについての注意書きがありました(下記)。 それについての疑問です。 「この制限は、varchar(max) 型、nvarchar(max) 型、varbinary(max) 型、ntext 型、text 型、image 型、または xml 型の列には適用されません。」 ○ntext型とvarchar 型等との組み合わせの場合、8060バイト制限は関係ないのでしょうか? (というよりntext型などは8060バイトレコード上限が関係ない?) 「text 型データと image 型データの使用」 http://msdn.microsoft.com/ja-jp/library/ms189574.aspx どうかご教授・ヒントなどいただけないでしょうか。 よろしくお願いいたします。 補足など必要でしたらコメントください。
- みんなの回答 (4)
- 専門家の回答
関連するQ&A
- SQL Serverでの文字列の格納
SQL Serverで日本語の文字列を格納する型について質問させてください。 日本語文字列の格納にはnvarcharとntext型がありますが、全部 ntext型にしてもよいものでしょうか? 全部ntext型にした場合、何か都合の悪いことがあるのでしょうか?
- ベストアンサー
- SQL Server
- 文字型について
文字データについて教えて頂きたいです。 (1)nvarchar と varchar を文字結合したとき、何か問題が起きることもあるのでしょうか? (2)bcpコマンドでfmtファイルを使用してCSVデータを取り込むとき、 テーブル側はnvarchar(4000)にしているにも関わらず、510バイトまでしか取り込めないようなのです。そういう仕様なのでしょうか?
- ベストアンサー
- SQL Server
- 文字数とバイト数が違うのは
体験版の送信ソフトで送れるプログラムは1KBまでという制限があります。 送ろうと思っているNCデータのサイズをプロパティで確認してみると NCデータの文字数は184なのに サイズが270バイトとなっています。 これはスペースも一文字としてカウントされるからなのでしょうか? またディスク上のサイズでは32768バイト(32KB)となっています。 ディスク上のサイズとは何で またなぜ大きくなるのか教えて頂けませんか? またこの場合ソフトの制限の1KBまでというのは サイズでみるのかディスク上のサイズで見るのかを 教えて頂けませんか? お願いします。
- 締切済み
- NC言語
- sp_executesqlを実行してもテーブルコピーができない。
次の様な動的SQLを作成し、テーブルのコピーを作成しようとしていますが「メッセージ 214、レベル 16、状態 2、プロシージャ sp_executesql、行 1 プロシージャにはデータ型 'ntext/nchar/nvarchar' のパラメータ '@statement' が必要です。」というエラーが出て実行できません。 構文などは間違っていないと思うのですが、よろしくご教授下さい。 ■プログラム DECLARE @SQLString VARCHAR(500) DECLARE @ParmDefinition VARCHAR(500) DECLARE @spRet int set @SQLString= N'SELECT * INTO @tableto FROM @tablefrom' set @ParmDefinition= N'@tableto VARCHAR(100),@tableto VARCHAR(100)' EXECUTE @spret=sp_executesql @SQLString,@ParmDefinition,@tableto='コピー元のテーブル名',@tableto='コピー先のテーブル名'
- ベストアンサー
- SQL Server
- 列名の最大文字数は?(MS SQL Server)
こんにちは、いつも参考にさせていただいております。 今Microcoft SQL Server2008のためのDB設計を行っているのですが、 列名を設定する時点になって、文字数の制限があっただろうかと 立ち止まってしまいました。 Oracleは30Byteとか指定がありましたが、 MS SQL Serverでは公式文書ぐらいしか見つけられず これだ!というわかりやすい答えに出会えていません。 (公式文書… http://msdn.microsoft.com/ja-jp/library/aa260295(SQL.80).aspx ) 公式文書の 「COLUMN_LENGTH」の横にある数字「128」があやしいな、と思っていますが型はvarcharなのでしょうか? それだと何文字ぐらい入るのでしょうか? とても初歩的という質問だとは思いますが、どうかご助言いただけないでしょうか。 よろしくお願いいたします。
- ベストアンサー
- SQL Server
- Unicodeについて
お世話になっております。 papillon68と申します。 [バージョン] SQLServer2005 (Management Studio Express 9.00.2047.00) 早速ではありますが、今回ご教授頂きたいことはSQLSERVERでのUnicodeの扱いについてです。 PHPとAjaxとSQLServerの連携を行っています。 ソース(PHPとAjax)はUTF-8で書いています。 ここで、SQLServerへのやりとりもUTF-8で行いたいのですが、どのようにしたらよいでしょうか。 文字列を扱う列の型は「nchar、nvarchar、ntext」などを使っています。 UTF-8でSQLServerに登録すると2バイト文字(ひらがな、漢字など)が 入力したとおりに保存されます。 ですが、SQLServerからデータをSELECT文で抜き出したときに 2バイト文字が化けてしまっています。 どのようにすれば文字化けせずにソースもSQLServerもUTF8で行うことができるのでしょうか。 お手数をお掛け致しますが、ご教授よろしくお願い致します。
- ベストアンサー
- SQL Server
- T-SQL ユーザ定義関数 指定したバイト数までの文字列を返したい
お世話になります。 SQLserver2005でユーザー定義関数に初めてトライしているのですが デバッグツールがなく、うまく動かない理由がわからず困っております。 ある文字列に対して、指定したバイト数までの文字を返すような関数を作りたいです。VBAでいうLEFT関数のバイト数指定版というのでしょうか。(すでにそんな関数があったりして。。) 以下のように作ってみたのですが、無限ループのようで、いつまでたってもデータが返ってきません。。どなたか教えていただけませんでしょうか? set ANSI_NULLS ON set QUOTED_IDENTIFIER ON go CREATE FUNCTION [dbo].[LeftByte] (@value nvarchar,@maxbyte bigint) RETURNS nvarchar(max) AS BEGIN declare @Countvalue as bigint declare @byte as bigint declare @result as nvarchar select @byte = 0 select @Countvalue = 0 select @result = '' while @byte < @maxbyte begin select @Countvalue = (@Countvalue + 1) select @result = (left(@value,@Countvalue)) select @byte = (datalength(@result)) if @byte >= @maxbyte break else continue end RETURN @result END 宜しくお願い致します。
- ベストアンサー
- SQL Server
- オーバーフローについて教えてください。
複数のIT用語辞典で調べるとオーバーフローとはデータ型が扱える範囲の上限を超えてしまうこととありました。 とするとint型の場合 32,767を超えることはオーバーフローと言うのでしょうけど、–32,768を下回ることはなんと言うのでしょうか?
- ベストアンサー
- その他(プログラミング・開発)
- 上限値基準の工程能力指数算出について
図面の基準値が公差の中央値狙いではなく上限値になってます。 その為実際の実測データも上限値寄りになってしまい、工程能力指数cpkの計算式に当てはめると、低い数値になってしまいます。 イメージ 基準値10.0 公差+0、-0.5 実測値max10.0、min9.8、平均9.93 実測は基準値付近になっているので状態はいいと思いますが、上記だと上限値10.0下限値9.5なので中央値9.75に対しては偏りがありcpkが低くなってしまいます。 設計者の意図はあくまで上限値狙いであり、製造側もそれに答えて上限値寄りに製作できているのですが、その工程能力を数字でどのように表せばいいのか困っております。 工程能力としては非常に高いと思っています。 もしかしたら片側規格と考えcpで算出すべきなのかもしれませんが、それだと10±0.25の設定だった場合より半分の実力値になるのでは?と疑問にも思っています。 アドバイス頂けると幸いです。
- ベストアンサー
- 測定・分析
- オラクルのデータ型について
オラクルのデータ型について教えてください。 ものすごく基本的な質問かもしれませんが、今後のことを考えて質問させていただきます。 文字列の型の"CHAR"と"VARCHAR2"についてです。 "CHAR"は固定長で2000バイト、 "VARCHAR2"は可変長で4000バイトとマニュアル等には記載されていますが、 いまいちピンときません。 そこで、それぞれの長所、短所。どのような時にどちらを使用したらいいのか 等をなるべく詳しく教えてもらえないでしょうか? 宜しくおねがいします。
- ベストアンサー
- その他(データベース)
お礼
jamshid6さん、ご回答ありがとう御座います。 > ・新設されたvarchar(max) 型などのLOBは1列ごとに16バイトのポインタを保持するが、先頭部分をデータエリア内に保持するというオプションを指定すると、最大500バイトまでの部分は8Kのデータページに保持される > ・従来のままの型で1行で8Kを超える場合、超えたとSQL Serverが判断した時点で超えた列について、1列につき24バイトのポインタを保持させ、超えた部分を行オーバフローページに押し出す そういう仕組みなんですね。 言葉を言い換えて頂いたのでよくわかりました。 本当にありがとうございます。 > この辺は「Inside SQL Server 2005 ストレージエンジン編」という本にくわしく書かれていますよ。 早速読んでみたいと思います。 とても勉強になりました。ありがとうございました。