¤å³¹½s¸¹: 198625 - ¤W¦¸®Õ¾\: 2004¦~3¤ë11¤é - ª©¦¸: 1.0

INF¡G³Ì¨Î¤Æ¼Æ¦r¡B¾ã¼Æ»P¨ä¥L¸ê®Æ«¬§Oªº¤ñ¸û

¨t²Î´£¥Ü¥»¤å¾A¥Î©ó±z¨Ï¥Îªº§@·~¨t²Î¤§¥~ªº§@·~¨t²Î¡C»P±z¤£¬ÛÃöªº¤å³¹¤º®e¤w°±¥Î¡C
¥»¤å´¿µo¦æ©ó CHT198625
¥þ³¡®i¶} | ¥þ³¡ºPÅ|

µ²½×

¥H¼Æ¦r¡B¤p¼Æ©M¾ã¼Æµ¥¸ê®Æ«¬§O¶i¦æ¸ê®Æ«¬§O³Ì¨Î¤Æ®É¡A·|¨Ï¥Î¤@¨Ç¬Û·íÄY®æªº³W«h¡C¥»¤å±N»¡©ú¨ÃÂç²M³Ì¨Î¤Æ¤u¨ã¥Î¨Ó°õ¦æ¹ê»Úªº¼Æ¦r¸ê®Æ«¬§O¤ñ¸û®É¡A©Ò¥Î¨ìªº±ø¥ó©M¬ù§ô¡C¤U¤@¸`±N»¡©ú¥»¤å©Ò¥Îªº±M¦³¦Wµü¤Î·§©À¡C

¡u ºë½T«× (Precision) ¡u¬O«ü¤@­Ó¼ÆùØ­±ªº¦ì¼Æ¡C¡v ¤p¼Æ¦ì¼Æ (Scale) ¡u¬O«ü¤p¼ÆÂI¥kÃ䪺¦ì¼Æ¡C¡v¨Ò¦p 123.45 ªº ºë½T«× ¬° 5¡A ¤p¼Æ¦ì¼Æ ¬° 2¡C

¥Ñ©ó¨ü¨ì¹q¸£¨Ï¥Îªº¤G¶i¦ì½s¸¹¨t²Îªº­­¨î¡A¦]¦¹¦³¨Ç¤G¶i¦ì¤À¼ÆµLªk¥¿½Tªºªí¥Ü¡C¨Ò¦p¤Q¶i¦ì¤À¼Æ 0.1 ´N¨S¦³¥¿½Tªº¤G¶i¦ìªí¥Ü¤è¦¡¡A¥u¯à¥Î¬Ûªñªº¼Æ­Èªí²{¡C¤]¦]¬°³o­Ó½t¬G¡A¯BÂI©M¹ê¼Æ (real) ¸ê®Æ«¬§O·|³Qµø¬°¬Ûªñªº­È¨Ó³B²z¡F¦Ó¾ã¼Æ¡B¼Æ¦r©M¤p¼Æµ¥¸ê®Æ«¬§O«o¯à³Qµø¬°¹ê»Úªº¸ê®Æ«¬§O¨Ó³B²z¡C

¡u ÄY®æ (strict) ¡v©Î¡u §¹¥þ¬Û²Å (exact) ¡v³o¨â­Óµü©Ò«üªº³£¬O­pºâ¾÷¤Wªº©w¸q¡C¨Ò¦p¡Anumeric(10,1) µLªkºë½T©ÎÄY®æ¦a»P numeric(10,2) §@¤ñ¸û¡A§Y¨Ï¨â­Ó¼Æ¦b¼Æ¾Ç¤W¬O§¹¥þ¬Ûµ¥ªº¡C±q¼Æ¾ÇªºÆ[ÂI¨Ó¬Ý 10.1 ©M 10.10 ¬O§¹¥þ¬Ûµ¥ªº¡C¦ý¥Ñ©ó¨âªÌªº¤p¼Æ¦ì¼Æ¤£¦P¡A¦]¦¹¦b­pºâ¾÷¤W¤£·|³Qµø¬°§¹¥þ¬Û²Å¡C

¨ä¥L¬ÛÃö¸ê°T

­Y·Q¤F¸Ñ³Ì¨Î¤Æ¤u¨ãªº¤ñ¸û¿ï¾Ü¡A­º¥ý¥²¶·¤F¸Ñ¦p¦ó­åªR¤Î³B²z¶i¤Jªº¸ê®Æ¡C
  • ·í SQL Server ¦¬¨ì¤@­Ó 10 ¦ì¼Æ¥H¤º¥BµL¤p¼ÆÂIªº­È¡A³o­Ó­È·|³Qµø¬° interger ¸ê®Æ«¬§O¨Ó³B²z¡C
  • ·í SQL Server ¦¬¨ì¤@­Ó 11 ¦ì¼Æ¥H¤Wªº­È¡A³o­Ó­È·|³Qµø¬°§¹¥þ¬Û²Å (Exact) ¸ê®Æ«¬§O (decimal ©Î numeric) ¨Ó³B²z¡C
  • ·í SQL Server ¦¬¨ì¤@­Ó¨ã¦³¤p¼ÆÂIªº­È¡A¥¦·|³Qµø¬°§¹¥þ¬Û²Å (Exact) ¸ê®Æ«¬§O³B²z¡C
  • ¼Æ¦r©M¤p¼Æ (8,0) ©Î¨S¦³¤p¼Æ¦ì¼Æªº¸û¤pªº­È¡A¥i¥H¥Î¾ã¼Æ­È¨Ó¥Nªí¡C¥u­n¦b¼Æ¦r©Î¤p¼Æ (§Y (8,0)¡B(7,0)¡B(6,0) µ¥µ¥) ¤W°õ¦æÄY®æ¤ñ¸û¡A¾ã¼Æ­È¥²³Qµø¬°¸û¬°ºë½Tªº¸ê®Æ«¬§O¡C
§¹¥þ¬Û²Å (Exact) ªº¸ê®Æ«¬§O­n¨D¡uÄY®æ¡vªº¤ñ¸û¡C»P¯BÂI©M¹ê¼Æ¸ê®Æ«¬§O¤£¦P¡A¥¦¤£±µ¨ü¥H¥|±Ë¤­¤Jªº¤è¦¡ºû«ù¸ê®Æ«¬§O»P¬ÛÃöªº¤ñ¸û¡C

³Ì¨Î¤Æ¤u¨ã¦b¨M©w­n§¹¦¨­pµe®É·|°µ¿ï¾Ü¡G¶i¤Jªº¤Þ¼Æªººë½T«×¤ñ¸ê®Æªí©w¸qªººë½T«×°ªÁÙ¬O§C¡H

­Y¤Þ¼Æ­Èºë½T«×¤ñ¸ê®Æ¦æªº¸ê®Æºë½T«×ÁÙ°ª¡A¨º»ò¸ê®Æ¦æªº¸ê®Æ¥²¶·´£¤É¨ì»P¤Þ¼Æ¬Û¦Pªººë½T«×©M¤p¼Æ¦ì¼Æ¡C¦¹®É¥²¶·Âà´«¸ê®Æ¦æ¤ºªº¸ê®Æ¡A¨Ã²£¥Í¨ä¤¤§t¦³¸ê®Æªí±½´yªº­p¹º¡C

­Y¤Þ¼Æ­Èºë½T«×¤ñ¸ê®Æ¦æªº¸ê®Æºë½T«×§C¡A¨º»ò¤Þ¼Æ¥²¶·´£¤É¨ì»P¸ê®Æ¦æªº¸ê®Æ¬Û¦Pªººë½T«×©M¤p¼Æ¦ì¼Æ¡C¤@¯ë¦Ó¨¥¡A³o¼Ë·|²£¥Í¥i¨Ï¥Î¯Á¤Þ©Î§óª½±µªº¤èªk¨Ó¶i¦æ¸ê®ÆÂ^¨úªº­p¹º¡C

¬°¤FÀ°§U±zÂç²M³o­Ó·§©À¡A¥H¤U´£¥X´X­Ó½d¨Ò¡C

½d¨Ò 1
create table tblTest( a numeric(8,0) PRIMARY KEY, b int)
select * from tblTest where a = 123
°Ñ·Ó¤§«eªº­åªR³W«h¡A123 ¤p©ó 10 ­Ó¼Æ¦r¥B¤£§t¤p¼ÆÂI¡C¦]¦¹¡G
  • ¶i¤Jªº¤Þ¼Æ·|³Qµø¬°¾ã¼Æ­È¡C
  • ¸ê®Æ¦æ©w¸q¬° (8,0) ©Î§ó¤Ö¡A¦]¦¹³o­Ó¾ã¼Æ·|³Qµø¬°§óºë½Tªº¸ê®Æ«¬§O¡C¦¹®É¸ê®Æ¦æ¥²¶·¶i¦æÂà´«¡A¨Ã¿ï¾Ü¤p©ó (less than) ªº³Ì¨Î¤Æ­p¹º¡C
½d¨Ò 2
create table tblTest( a numeric(10,0) PRIMARY KEY, b int)
select * from tblTest where a = 123.
  • ¶i¤Jªº¤Þ¼Æ§t¦³¤p¼ÆÂI¡A¥B WHERE ¤l¥y¤¤¨S¦³¤p¼Æ¦ì¼Æ¡A¦]¦¹³o­Ó¤Þ¼Æ·|³Qµø¬°¤@­Ó§¹¥þ¬Û²Å (exact) ªº¸ê®Æ«¬§O¡A§Y decimal ©Î numeric (n,0)¡C
  • ¸ê®Æ¦æ©w¸q¬O (10,0)¡A¦]¦¹³o­Ó¤Þ¼Æ¥i¥H³Q¤É¯Å¨Ã¶i¦æºë½Tªº¤ñ¹ï¡C³o³q±`·|²£¥Í¨Ï¥Îª½±µ·j´M¯Á¤Þªº¬d¸ß­p¹º¡C
½d¨Ò 3
create table tblTest( a numeric(10,0) PRIMARY KEY, b int)
select * from tblTest where a = 123.0
  • ¶i¤Jªº¤Þ¼Æ§t¦³¤p¼ÆÂI¤Î¤@¦ì¤p¼Æ¡C¥¦·|²£¥Í¤@­Ó§¹¥þ¬Û²Å (Exact) ªº¸ê®Æ«¬§O (n,1)¡C

    ª`·N¡G ³o­Ó¬d¸ß¤¤ªº¤p¼Æ¦ì¼Æ«D±`­«­n¡C´£¥æªº¬d¸ßªí¥Ü¤F¥¦¦b¼Æ¾Ç¤è­±»Ý­n§@¤ñ¸û¡A¨äºë½T«×¤Î¤p¼Æ¦ì¼Æ¬° (n,1) ¦Ó¤£¬O (n,0)¡C
  • ¸ê®Æ¦æ©w¸q¬O (10,0)¡A¦]¦¹³o­Ó¤Þ¼Æ·|³Q·í§@ºë½T«×¸û°ªªº¸ê®Æ«¬§O¡C¦¹¸ê®Æ¦æ¥²¶·¶i¦æÂà´«¡A¨Ã¿ï¥Î¤p©ó (less than) ªº³Ì¨Î¤Æ­p¹º¡C
½Ð°O¦í¡A¸ê®Æªí©w¸q¬O¤@ºØ§¹¥þ¬Û²Å (Exact) ªº¸ê®Æ«¬§O¡C¦pªG¦øªA¾¹¸Õ¹Ï¥|±Ë¤­¤J¡A¥¦´NµLªk«O¯dºë½T¸ê®Æ«¬§Oªº³W«h¡A¾É­Pµ²ªG³B²zµL®Ä¡C

Á|¨Ò¦p¤U¡G
create table tblTest( a numeric(10,1) PRIMARY KEY, b int)
select * from tblTest where a = 123.15
¦pªG SQL Server ¥¼¿ï¾Ü­p¹º¨ÓÂà´«¶i¤Jªº¤Þ¼Æ ((n,2) ºë½T«×»P¤p¼Æ¦ì¼Æ) ¤§¸ê®Æ¦æ¸ê®Æ¡A¦Ó¿ï¾Ü±N¤Þ¼Æ¥|±Ë¤­¤J¦¨¸ê®Æ¦æªººë½T«×©M¤p¼Æ¦ì¼Æ¡A¨º»ò¥¦·|¿ï¾Ü 123.2¡A¦Ó¨Ï¥ÎªÌ¥i¯à·Q§ó·s¬° 123.1¡C¦¹®É¨âªÌ´N¤£¬Û²Å¡C

©Ò¦³¤p¼Æ¦ì¼Æ¤p©ó 10 ¥Bºë½T«× 0 ªº¼Æ­È§¡¥i¦s¦¨ tinyint¡Bsmallint ©Î¾ã¼Æ«¬§O¡A¤À§O¦û¥Î¤F 1¡B2¡B4 ­Ó¦ì¤¸²ÕªºÀx¦sªÅ¶¡¡C¬Û¸û¤§¤U¡A§Y¨Ï¬O³Ì¤pªº¼Æ­È³£­n¦û¥Î 5 ­Ó¦ì¤¸²ÕªºÀx¦sªÅ¶¡¡Aºë½T«×¶V°ª¡A©Ò»ÝªºÀx¦sªÅ¶¡¶V¦h¡C¤UªíÅã¥Ü¤F³o¨Ç«¬§Oªº¹ïÀ³Ãö«Y¡C

ºPÅ|¦¹ªí®æ®i¶}¦¹ªí®æ
ºë½T«× ·s«¬§O
<= 2 tinyint
<= 4 smallint
< 10 int

°£¤F¨Ï¥Î¯Á¤Þ§ó¦³®Ä²v¤§¥~¡A¾A®É¨Ï¥Î³o¨Ç¸ê®Æ«¬§O¡A¥i¥HÀ°±z¬Ù¤U¥iÆ[ªºªÅ¶¡¡C

SQL Server 7.0 ·s¼W¤F ALTER TABLE .. ALTER COLUMN ³¯­z¦¡¡A¥¦¥i¥Î¨Ó°ÊºAÅܧó¸ê®Æ¦æªº¸ê®Æ«¬§O¡C¦bª©ªº SQL Server ¤¤­Y­n°µ³oºØÂà´«¡A¥u¯à¥H»Ý­nªº©w¸q«Ø¥ß·s¸ê®Æªí¡AµM«á°õ¦æ INSERT .. SELECT ³¯­z¦¡¶ñ¤J¸ê®Æªí¨Ó¹F¦¨¡C½Ðª`·N¡A³o¶µÅܧó»Ý­n±z§ó·s¥i¯à¨Ï¥ÎÅܼƭn¨D¸ê®Æ¦æ¬°¼Æ­È«¬§OªºÄ²µoµ{§Ç¡B¹w¦sµ{§Ç©Î¨ä¥Lµ{¦¡½X¡C

?¦Ò

¥»¤å¥ó¬O®Ú¾Ú Microsoft Knowledgebase ¤å¥ó½s¸¹ Q198625 ½Ķªº¡C­Y­n°Ñ¦Ò­ì©l­^¤å¤å¥ó¤º®e¡A½Ð¦Ü¥H¤Uºô§}¡G

http://support.microsoft.com/support/kb/articles/Q198/6/25.asp (http://support.microsoft.com/kb/198625/en-us?ln=en-us&sd=gn&fr=0)

³o½g¤å³¹¤¤ªº¸ê°T¾A¥Î©ó:
  • Microsoft SQL Server 6.5 Standard Edition
  • Microsoft SQL Server 7.0 Standard Edition
ÃöÁä¦r¡G?
kbinfo kbsqlserv650sp2bug kbsqlserv650sp3bug kbsqlserv650sp4bug KB198625
Microsoft¤Î(©Î)¨ä¨ÑÀ³°Ó¤£´N¥ô¦ó¦b¥»¦øªA¾¹¤Wµoªíªº¤å¦r¸ê®Æ¤Î¨ä¬ÛÃö¹Ïªí¸ê°Tªº«ê·í©Ê§@¥ô¦ó©Ó¿Õ¡C©Ò¦³¤å¦r¸ê®Æ¤Î¨ä¬ÛÃö¹Ïªí§¡¥H¡u²{ª¬¡v¨ÑÀ³¡A¤£­t¥ô¦ó¾á«O³d¥ô¡CMicrosoft¤Î(©Î)¨ä¨ÑÀ³°ÓÂÔ¦¹Án©ú¡A¤£­t¥ô¦ó¹ï»P¦¹¸ê°T¦³Ãö¤§¾á«O³d¥ô¡A¥]¬AÃö©ó¾A°â©Ê¡B¾A¥Î©ó¬Y¤@¯S©w¥Î³~¡BÅv§Q©Î¤£«IÅvªº©ú¥Ü©ÎÀq¥Ü¾á«O³d¥ô¡CMicrosoft¤Î(©Î)¨ä¨ÑÀ³°ÓµL½×¦p¦ó¤£¹ï¦]©Î»P¨Ï¥Î¥»¦øªA¾¹¤W¸ê°T©Î»P¸ê°Tªº¹ê¦æ¦³Ãö¦Ó¤Þ°_ªº«´¬ù¡B¹L¥¢©Î¨ä¥L«IÅv¦æ¬°¤§¶D³^¤¤ªº¯S§Oªº¡B¶¡±µªº¡B­l¥Í©Êªº·l®`©Î¥ô¦ó¦]¨Ï¥Î¦Ó³à¥¢©Ò¾É­Pªº¤§·l®`¡B¸ê®Æ©Î§Q¼í­t¥ô¦ó³d¥ô¡C