SQL SERVER
sql server·Ö²¼Ê½ÊÂÎñ½â¾ö·½°¸
ÊÊÓû·¾³
²Ù×÷ϵͳ£ºwindows 2003
Êý¾Ý¿â£ºsql server 2000/sql server 2005
ʹÓÃÁ´½Ó·þÎñÆ÷½øÐÐÔ¶³ÌÊý¾Ý¿â·ÃÎʵÄÇé¿ö
Ò»¡¢ ÎÊÌâÏÖÏó
ÔÚÖ´Ðзֲ¼Ê½ÊÂÎñʱ£¬ÔÚsql server 2005ÏÂÊÕµ½ÈçÏ´íÎó£º
ÏûÏ¢ 7391£¬¼¶±ð 16£¬×´Ì¬ 2£¬¹ý³Ì xxxxx£¬µÚ 16 ÐÐ
ÎÞ·¨Ö´ÐиòÙ×÷£¬ÒòΪÁ´½Ó·þÎñÆ÷ "xxxxx" µÄ OLE DB ·ÃÎÊ½Ó¿Ú "SQLNCLI" ÎÞ·¨Æô¶¯·Ö²¼Ê½ÊÂÎñ¡£
ÔÚsql server 2000ÏÂÊÕµ½ÈçÏ´íÎó£º
¸Ã²Ù×÷δÄÜÖ´ÐУ¬ÒòΪ OLE DB Ìṩ³ÌÐò 'SQLOLEDB' ÎÞ·¨Æô¶¯·Ö²¼Ê½ÊÂÎñ¡£
[OLE/DB provider returned message: ÐÂÊÂÎñ²»ÄܵǼǵ½Ö¸¶¨µÄÊÂÎñ´¦ÀíÆ÷ÖС£ ]
OLE DB ´íÎó¸ú×Ù£ÛOLE/DB Provider 'SQLOLEDB' ITransactionJoin::JoinTransaction returned 0x8004d00a£Ý¡£
¶þ¡¢ ½â¾ö·½°¸
1. Ë«·½Æô¶¯MSDTC·þÎñ
MSDTC·þÎñÌṩ·Ö²¼Ê½ÊÂÎñ·þÎñ£¬Èç¹ûÒªÔÚÊý¾Ý¿âÖÐʹÓ÷ֲ¼Ê½ÊÂÎñ£¬±ØÐëÔÚ²ÎÓëµÄË«·½·þÎñÆ÷Æô¶¯MSDTC£¨Distributed Transaction Coordinator£©·þÎñ¡£
2. ´ò¿ªË«·½135¶Ë¿Ú
MSDTC·þÎñÒÀÀµÓÚRPC£¨Remote Procedure Call (RPC)£©·þÎñ,RPCʹÓÃ135¶Ë¿Ú£¬±£Ö¤RPC·þÎñÆô¶¯£¬Èç¹û·þÎñÆ÷ÓзÀ»ðǽ£¬±£Ö¤135¶Ë¿Ú²»±»·À»ðǽµ²×¡¡£
ʹÓÓtelnet IP 135 ”ÃüÁî²âÊÔ¶Ô·½¶Ë¿ÚÊÇ·ñ¶ÔÍ⿪·Å¡£Ò²¿ÉÓö˿ÚɨÃèÈí¼þ£¨±ÈÈçAdvanced Port Scanner£©É¨Ãè¶Ë¿ÚÒÔÅж϶˿ÚÊÇ·ñ¿ª·Å¡£
3. ±£Ö¤Á´½Ó·þÎñÆ÷ÖÐÓï¾äûÓзÃÎÊ·¢ÆðÊÂÎñ·þÎñÆ÷µÄ²Ù×÷
ÔÚ·¢ÆðÊÂÎñµÄ·þÎñÆ÷Ö´ÐÐÁ´½Ó·þÎñÆ÷ÉϵIJéѯ¡¢ÊÓͼ»ò´æ´¢¹ý³ÌÖк¬ÓзÃÎÊ·¢ÆðÊÂÎñ·þÎñÆ÷µÄ²Ù×÷£¬ÕâÑùµÄ²Ù×÷½Ð×ö»·»Ø£¨loopback£©£¬ÊDz»±»Ö§³ÖµÄ£¬ËùÒÔÒª±£Ö¤ÔÚÁ´½Ó·þÎñÆ÷Öв»´æÔÚ´ËÀà²Ù×÷¡£
4. ÔÚÊÂÎñ¿ªÊ¼Ç°¼ÓÈëset xact_abort ONÓï¾ä
¶ÔÓÚ´ó¶àÊý OLE DB Ìṩ³ÌÐò£¨°üÀ¨ SQL Server£©£¬±ØÐ뽫Òþʽ»òÏÔʾÊÂÎñÖеÄÊý¾ÝÐÞ¸ÄÓï¾äÖÐµÄ XACT_ABORT ÉèÖÃΪ ON¡£Î¨Ò»²»ÐèÒª¸ÃÑ¡ÏîµÄÇé¿öÊÇÔÚÌṩ³ÌÐòÖ§³ÖǶÌ×ÊÂÎñʱ¡£
5. MSDTCÉèÖÃ
´ò¿ª“¹ÜÀí¹¤¾ß¨D¨D×é¼þ·þÎñ”£¬ÒÔ´Ë´ò¿ª“×é¼þ·þÎñ¨D¨D¼ÆËã»ú”£¬ÔÚ“ÎҵĵçÄÔ”Éϵã»÷ÓÒ¼ü¡£ÔÚMSDTCÑ¡ÏÖУ¬µã»÷“°²È«ÅäÖÔ°´Å¥¡£
ÔÚ°²È«ÅäÖô°¿ÚÖÐ×öÈçÏÂÉè
Ïà¹ØÎĵµ£º
int object_id('objectname');
´Ë·½·¨·µ»ØÊý¾Ý¿â¶ÔÏó±êʶºÅ¡£
ÆäÖУ¬²ÎÊýobjectname ±íʾҪʹÓõĶÔÏ󣬯äÊý¾ÝÀàÐÍΪnchar»òchar£¨Èç¹ûΪchar£¬ÏµÍ³½«Æäת»»Îªnchar£©
·µ»ØÀàÐÍΪint£¬±íʾ¸Ã¶ÔÏóÔÚϵͳÖеıàºÅ¡£
±ÈÈ磺
use wf_timesheet
select object_id('usp_check_excess_hours')
·µ»ØÎª197575742¡£
´Ë· ......
ÆäʵÔÚÐÞ¸ÄÊý¾Ý¿âÃû³ÆÖ®Ç°£¬Èç¹ûÓÐÓû§Á¬½Óµ½Êý¾Ý¿âµÄ»°»áÔì³ÉÊý¾Ý¿âÖØÃüÃûʧ°Ü£¬¿ÉÒÔÏÈÖ´ÐÐ
select spid
from master.dbo.sysprocesses
where dbid=db_id('OldDbName')
½á¹û¼¯ÖÐÏÔʾµÄÊǵ±Ç°Á¬½Óµ½Êý¾Ý¿âOldDbNameµÄÁ¬½Ó
±ÈÈç½á¹ûÊÇ
79
81
µ±È»£¬Êµ¼ÊÖµÓ¦¸Ã²»ÊÇÕâÁ½¸ö
È»ºóÖ´ÐÐ
kill 79
kill 81
¹Ø±ÕÒѽ¨Á¢ ......
ÔÚSQLÓï¾äÓÅ»¯¹ý³ÌÖУ¬ÎÒÃǾ³£»áÓõ½hint,ÏÖ×ܽáÒ»ÏÂÔÚSQLÓÅ»¯¹ý³ÌÖг£¼ûOracle HINTµÄÓ÷¨£º
1. /*+ALL_ROWS*/
±íÃ÷¶ÔÓï¾ä¿éÑ¡Ôñ»ùÓÚ¿ªÏúµÄÓÅ»¯·½·¨,²¢»ñµÃ×î¼ÑÍÌÍÂÁ¿,ʹ×ÊÔ´ÏûºÄ×îС»¯.
ÀýÈç:
SELECT /*+ALL+_ROWS*/ EMP_NO,EMP_NAM,DAT_IN from BSEMPMS WHERE EMP_NO='SCOTT';
2. /*+FIRST_ROWS*/
±í ......
bit£º0»ò1µÄÕûÐÍÊý×Ö
int£º´Ó-2^31(-2,147,483,648)µ½2^31(2,147,483,647)µÄÕûÐÍÊý×Ö
smallint£º´Ó-2^15(-32,768)µ½2^15(32,767)µÄÕûÐÍÊý×Ö
tinyint£º´Ó0µ½255µÄÕûÐÍÊý×Ö
decimal£º´Ó-10^38µ½10^38-1µÄ¶¨¾«¶ÈÓëÓÐЧλÊýµÄÊý×Ö
numeric£ºdecimalµÄͬÒå´Ê
money£º´Ó-2^63(-922,337,203,685,477.580 ......
1£¬SqlServer´æ´¢¹ý³ÌµÄÊÂÎñ´¦Àí
Ò»ÖֱȽÏͨÓõijö´í´¦ÀíµÄģʽ´ó¸ÅÈçÏ£º
Create procdure prInsertProducts
(
@intProductId int,
@chvProductName varchar(30),
@intProductCount int
)
AS
Declare @intErrorCode int
Select @intErrorCode=@@Error
Begin transaction
if @intError ......