ÈçºÎɾ³ý SQL Server ±íÖеÄÖØ¸´ÐÐ
Microsoft SQL Server ±í²»Ó¦¸Ã°üº¬Öظ´ÐкͷÇΨһÖ÷¼ü¡£Îª¼ò½àÆð¼û£¬ÔÚ±¾ÎÄÖÐÎÒÃÇÓÐʱ³ÆÖ÷¼üΪ“¼ü”»ò“PK”£¬µ«ÕâʼÖÕ±íʾ“Ö÷¼ü”¡£Öظ´µÄ PK Î¥·´ÁËʵÌåÍêÕûÐÔ£¬ÔÚ¹ØÏµÏµÍ³ÖÐÊDz»ÔÊÐíµÄ¡£SQL Server Óи÷ÖÖÇ¿ÖÆÖ´ÐÐʵÌåÍêÕûÐԵĻúÖÆ£¬°üÀ¨Ë÷Òý¡¢Î¨Ò»Ô¼Êø¡¢Ö÷¼üÔ¼ÊøºÍ´¥·¢Æ÷¡£
¾¡¹ÜÈç´Ë£¬ÔÚijЩÇé¿öÏ»¹¿ÉÄÜ»á³öÏÖÖØ¸´µÄÖ÷¼ü;Èç¹û³öÏÖ´ËÀàÇé¿ö£¬¾Í±ØÐëÇå³ýÖØ¸´Ö÷¼ü¡£³öÏÖÖØ¸´Ö÷¼üµÄÇéÐÎÖ®Ò»ÊÇ£¬ÔÚ SQL Server ÍⲿµÄ·Ç¹ØÏµÊý¾ÝÖдæÔÚÖØ¸´µÄ PK£¬ÔÚµ¼ÈëÕâЩÊý¾ÝʱûÓÐÇ¿ÖÆÖ´ÐÐ PK ΨһÐÔ¡£³öÏÖÖØ¸´Ö÷¼üµÄÁíÒ»ÖÖÇéÐÎÀ´×ÔÊý¾Ý¿âÉè¼Æ´íÎó£¬ÈçûÓжÔÿÕűíÇ¿ÖÆÖ´ÐÐʵÌåÍêÕûÐÔ¡£
¡¡¡¡Í¨³£ÔÚ³¢ÊÔ´´½¨Î¨Ò»Ë÷Òýʱ»á·¢ÏÖÖØ¸´µÄ PK£¬ÒòΪÈç¹ûÕÒµ½Öظ´µÄ¼ü£¬Î¨Ò»Ë÷ÒýµÄ´´½¨¼´»áÖÐÖ¹£¬²¢ÇÒ½«ÏÔʾÒÔÏÂÏûÏ¢£º
¡¡¡¡Msg 1505, Level 16, State 1 Create unique index aborted on duplicate key.
¡¡¡¡Èç¹ûʹÓõÄÊÇ SQL Server 2000 »ò SQL Server 2005£¬Ôò»áÊÕµ½ÒÔÏ´íÎóÏûÏ¢£º
¡¡¡¡Msg 1505, Level 16, State 1 CREATE UNIQUE INDEX terminated because a duplicate key was found for object name '%.*ls' and index name '%.*ls'.The duplicate key value is %ls.
¡¡¡¡±¾ÎÄÌÖÂÛÈçºÎ²éÕÒºÍɾ³ý±íÖÐÖØ¸´µÄÖ÷¼ü¡£µ«ÊÇ£¬ÄúÓ¦¸Ã×Ðϸ¼ì²é³öÏÖÖØ¸´¼üµÄ½ø³ÌÒÔ±ÜÃâÖØ¸´³öÏÖ¡£
¡¡¡¡¸ü¶àÐÅÏ¢
¡¡¡¡ÔÚ¸ÃʾÀýÖУ¬ÎÒÃǽ«Ê¹ÓÃÏÂ±í£¬Ëü¾ßÓÐÖØ¸´µÄ PK Öµ¡£ÔڸñíÖУ¬Ö÷¼üÊÇÁ½ÁÐ(col1¡¢col2)¡£ÎÒÃÇÎÞ·¨´´½¨Î¨Ò»Ë÷Òý»òÖ÷¼üÔ¼Êø£¬ÒòΪÕâÁ½ÐоßÓÐÖØ¸´µÄ PK¡£¸Ã¹ý³ÌÑÝʾÈçºÎʶ±ðºÍɾ³ýÖØ¸´µÄÖ÷¼ü¡£
¡¡¡¡create table t1(col1 int, col2 int, col3 char(50))
¡¡¡¡insert into t1 values (1, 1, 'data value one')
¡¡¡¡insert into t1 values (1, 1, 'data value one')
¡¡¡¡insert into t1 values (1, 2, 'data value two')
¡¡¡¡µÚÒ»²½ÊÇʶ±ðÄÄЩÐоßÓÐÖØ¸´µÄÖ÷¼üÖµ£º
¡¡¡¡SELECT col1, col2, count(*)
¡¡¡¡from t1
¡¡¡¡GROUP BY col1, col2
¡¡¡¡HAVING count(*) > 1
¡¡¡¡Õ⽫Ϊ±íÖеÄÿ×éÖØ¸´µÄ PK Öµ·µ»ØÒ»ÐС£´Ë½á¹ûÖеÄ×îºóÒ»ÁÐÊÇÌØ¶¨ PK ÖµµÄÖØ¸´Êý¡£
¡¡¡¡col1c
Ïà¹ØÎĵµ£º
error£º40´íÎó ÔÒòÊÇÒòΪ SQL Server2005 ĬÈϵÄÉèÖÃΪ²»ÔÊÐíÔ¶³ÌÁ¬½Ó£¬¾Í»áµ¼Ö´Ëʧ°Ü¡£ Ìáʾ£ºprovider£ºÃüÃû¹ÜµÀÌṩ³ÌÐò£¬ error£º40-ÎÞ·¨´ò¿ªµ½ SQL Server µÄÁ¬½Ó)¡£ÊµÀý£¨Ä¬ÈÏÊÇ¡°SQLEXPRESS¡± ·½·¨£º A:¿ªÊ¼->ÅäÖù¤¾ß->SQL Server ÍâΧӦÓÃÅäÖÃÆ÷->·þÎñºÍÁ¬½ÓÍâΧӦÓÃÅäÖÃÆ÷ B:Ñ¡database EngineµÄ¡ ......
¿Î³ÌÁù ÔËÐÐʱӦÓñäÁ¿
¡¡¡¡
¡¡¡¡±¾¿ÎÖØµã£º
¡¡¡¡
¡¡¡¡1¡¢´´½¨Ò»¸öSELECTÓï¾ä£¬ÌáʾUSERÔÚÔËÐÐʱÏȶԱäÁ¿¸³Öµ¡£
¡¡¡¡
¡¡¡¡2¡¢×Ô¶¯¶¨ÒåһϵÁбäÁ¿£¬ÔÚSELECTÔËÐÐʱ½øÐÐÌáÈ¡¡£
¡¡¡¡
¡¡¡¡3¡¢ÔÚSQL PLUSÖÐÓÃACCEPT¶¨Òå±äÁ¿
¡¡¡¡
¡¡¡¡×¢Ò⣺ÒÔÏÂʵÀýÖбêµã¾ùΪӢÎİë½Ç
¡¡¡¡
¡¡¡¡Ò»¡¢¸ÅÊö£º
¡¡¡¡
¡¡¡¡±äÁ¿¿É ......
¿Î³ÌÊ®¶þ ±àд¿ØÖƽṹÓï¾ä
¡¡¡¡
¡¡¡¡±¾¿ÎÖØµã£º
¡¡¡¡1¡¢½á¹¹¿ØÖƵĵÄÓÃ;ºÍÀàÐÍ
¡¡¡¡2¡¢IF ½á¹¹
¡¡¡¡3¡¢¹¹ÔìºÍ±êʶ²»Í¬µÄÑ»·
¡¡¡¡4¡¢Ê¹ÓÃÂß¼±í
¡¡¡¡5¡¢¿ØÖÆÁ÷ºÍǶÌ×
¡¡¡¡
¡¡¡¡×¢Ò⣺ÒÔÏÂʵÀýÖбêµã¾ùΪӢÎİë½Ç
¡¡¡¡
¡¡¡¡Ò»¡¢¿ØÖÆÖ´ÐÐÁ÷
¡¡¡¡¿ÉÒÔÊÇ·ÖÖ§ºÍÑ»·£ºIF THEN END IF
¡¡¡¡IF condition THEN ......
¿Î³ÌÊ®Èý ʹÓÃ×éºÏÊý¾ÝÀàÐÍ* Óαê²Ù×ÝÊý¾Ý
¡¡¡¡
¡¡¡¡±¾¿ÎÖØµã£º
¡¡¡¡1¡¢´´½¨Óû§×Ô¶¨ÒåµÄPLSQL¼Ç¼
¡¡¡¡2¡¢ÀûÓÃ%ROWTYPEÊôÐÔÀ´´´½¨¼Ç¼
¡¡¡¡3¡¢´´½¨PLSQL±í
¡¡¡¡4¡¢ÃèÊö¼Ç¼¡¢±í¡¢¼Ç¼µÄ±íÖ®¼äµÄÇø±ð
¡¡¡¡×¢Ò⣺ÒÔÏÂʵÀýÖбêµã¾ùΪӢÎİë½Ç
¡¡¡¡Ò»¡¢ºÏ³ÉÊý¾ÝÀàÐÍ
¡¡¡¡1¡¢ÀàÐÍ·ÖΪPLSQL¼Ç¼ºÍPLSQL±í
¡¡¡¡2¡ ......