- - PR -
SQLSERVER2005_ROUND関数のバグ?
1
投稿者 | 投稿内容 | ||||||||
---|---|---|---|---|---|---|---|---|---|
|
投稿日時: 2006-03-29 23:10
ハニワ祭りと申します。
SQLSERVER2005のROUND関数についてなのですが、 Management Studioより SELECT ROUND(0.5,0) と実行すると、なぜかオーバーフローしてエラーになってしまいます。 現在わかっている状況をまとめると以下のようになります。 (1)0.5以上1未満で発生するようです。 (2)数値型の変数に入れてから渡した場合には発生しない。('1'が返却される。) (3)CAST(ROUND(0.5,0) AS NUMERIC)としても発生しない。('1'が返却される。) (4)ROUND(0.5,0,0)としてもやはり発生するが、 ROUND(0.5,0,1)として切り捨てを指定すると発生しない。 (5)SQLSERVER2000にて実行するとエラーにはならずに'1'が返却される。 これはやはりSQLSERVER2005のバグなんでしょうか? SQLSERVER2005はMSDN版(エンジンのバージョンは製品版と同じ)です。 よろしくお願いします。 [ メッセージ編集済み 編集者: ハニワ祭り 編集日時 2006-03-29 23:29 ] | ||||||||
|
投稿日時: 2006-03-30 11:55
たしかに Management Studio で実行するとエラーになりますね。
ただ、クエリアナライザ(SQL Server 2000付属のもの)で SQL Server 2005 に接続した場合は問題ありません。
クエリアナライザは ODBC 接続ですが、Management Studio は SQL Native Client だから? ともかくデータベースエンジン自体の問題ではなく接続ミドルウェアの問題のような気がします。ADO.NET かなにかで ODBC/OLE/SQL Native Client でのテストをしてみると詳しく分かるかもしれません。(私は忙しくてそこまでできない) | ||||||||
|
投稿日時: 2006-03-30 18:25
こんにちは。
私の環境でも再現します。
C# 2.0 で試してみました。 System.Data.SqlClient 名前空間を使用して接続 結果: 1.0 System.Data.OleDb 名前空間を使用して接続 接続文字列のキーワード: Provider=SQLNCLI 結果: 1.0 System.Data.Odbc 名前空間を使用して接続 接続文字列のキーワード: Driver={SQL Native Client} 結果: 1.0 Access 2003 の VBA ADODB 接続文字列のキーワード: Provider=SQLNCLI 結果: 1 この結果のみで判断すると SQL Server Management Studio 固有の不具合に思えます。 | ||||||||
|
投稿日時: 2006-03-30 18:38
最近、SQL Server 2005 絡みの不具合が続いてますね。
よろしければ、MSDN フォーラムへフィードバックしてください。 _________________ C# と VB.NET の入門サイト じゃんぬねっと日誌 | ||||||||
|
投稿日時: 2006-03-31 11:59
ueです。
フィードバックしました。 http://forums.microsoft.com/msdn-ja/ShowPost.aspx?PostID=326540&SiteID=7&mode=1 |
1