by SQL Protocols via SQL Protocols on 5/19/2010 6:20:00 AM
Several customers approached us asking what are the possible values for CurCmd in TDS DONE token. The TDS DONE token is defined at http://msdn.microsoft.com/en-us/library/dd340421(PROT.13).aspx. Similar rules apply to DONEPROC and DONEINPROC. In the TDS protocol, we have: CurCmd The token of the current command. The token value is provided and controlled by the application layer, which utilizes TDS. The TDS layer does not evaluate the value.
Several customers approached us asking what are the possible values for CurCmd in TDS DONE token. The TDS DONE token is defined at http://msdn.microsoft.com/en-us/library/dd340421(PROT.13).aspx. Similar rules apply to DONEPROC and DONEINPROC.
In the TDS protocol, we have:
CurCmd
The token of the current command. The token value is provided and controlled by the application layer, which utilizes TDS. The TDS layer does not evaluate the value.
As it says, we don’t put the possible value in the TDS specification because TDS layer does not control nor validate the values. It’s purely an upper (in our case, SQL Server Database Engine) thing. None of Microsoft database client drivers expose the CurCmd value to application layer.
However, apparently some customers want to know more about the values when they monitor and read TDS raw data. Actually, in the TDS netmon parser published with the latest Microsoft Network Monitor, we have a table which contains values up to SQL Server 2008. You can find the TDS parser file at C:\ProgramData\Microsoft\Network Monitor 3\NPL\Microsoft Parsers\Windows\TDS.NPL.
For reference, I’m listing the values here. To emphasize once again, TDS layer does not control the values and we don’t necessarily know the meaning of command to which the CurCmd is mapping. Please try your best to understand the meaning, some are straightforward. Several missing values are deprecated ones. SQL Server Database Engine could add new value to CurCmd anytime when new feature is added and new CurCmd value is needed.
Table CurCmdType(value)
{
switch( value )
case 0x03: "COLDEF";
case 0x05: "CNST";
case 0x08: "NOP";
case 0x09: "AOPCNTB";
case 0x0a: "AOPCNTBU";
case 0x0b: "ISNOT";
case 0x0d: "EQ_ANSI";
case 0x1a: "REFERENCES";
case 0x1b: "SIG_HANDLER";
case 0x1c: "TM_REQUEST";
case 0x1d: "VARCHEQ";
case 0x1e: "VARCHNE";
case 0x1f: "CKPT_SLEEP";
case 0x20: "OPENCURSOR";
case 0x21: "FETCHCURSOR";
case 0x23: "LOCK_MONITOR";
case 0x24: "DB_MIRROR";
case 0x26: "DB_STARTUP";
case 0x28: "VAR";
case 0x29: "LOADTABLE";
case 0x2a: "COLFMTOLD";
case 0x2b: "CLOSECURSOR";
case 0x2c: "DEALLOCCURSOR";
case 0x2d: "LOG_WRITER";
case 0x2e: "CNST_CREATE";
case 0x30: "AOPSTDEV";
case 0x31: "AOPSTDEVP";
case 0x32: "AOPVAR";
case 0x33: "AOPVARP";
case 0x34: "TASK_MGR";
case 0x39: "DUMPTABLE";
case 0x3b: "GHOSTCLEANUP";
case 0x3e: "AUTOSHRINK";
case 0x3f: "AUTOBPL";
case 0x41: "MINUS";
case 0x42: "NOT";
case 0x43: "CNVTI1";
case 0x44: "CNVTI2";
case 0x45: "CNVTI4";
case 0x46: "BUILTIN";
case 0x47: "CNVTF8";
case 0x48: "CNVTVBINARY";
case 0x49: "CNVTBINARY";
case 0x4a: "AOPONCEU";
case 0x4b: "AOPCNT";
case 0x4c: "AOPCNTU";
case 0x4d: "AOPSUM";
case 0x4e: "AOPSUMU";
case 0x4f: "AOPAVG";
case 0x50: "AOPAVGU";
case 0x51: "AOPMIN";
case 0x52: "AOPMAX";
case 0x53: "AOPANY";
case 0x54: "AOPONCE";
case 0x55: "AOPASSIGN";
case 0x56: "CNVTMONEY4";
case 0x57: "CNVTDATE4";
case 0x58: "CNVTF4";
case 0x59: "CNVTBIT";
case 0x5a: "BOOLNOT";
case 0x5b: "CNVTNUME";
case 0x5c: "CNVTDECML";
case 0x5d: "SQLCASE";
case 0x5e: "TABREF";
case 0x5f: "CNVTI8";
case 0x60: "DEBUG_CMD";
case 0x61: "AOPANYNULL";
case 0x62: "AOPGETRID";
case 0x63: "AOPGROUPING";
case 0x64: "CNVTNCHAR";
case 0x65: "CNVTNVCHAR";
case 0x66: "CNVTTEXT";
case 0x67: "CNVTIMAGE";
case 0x68: "CNVTDATTIM";
case 0x69: "CNVTMONEY";
case 0x6a: "CNVTSSVARIANT";
case 0x6b: "CNVTNTEXT";
case 0x6e: "AOPSCOREPROBAGG";
case 0x6f: "AOPSCOREDETAGG";
case 0x70: "SECOPT";
case 0x71: "CNVTVCHAR";
case 0x72: "AOPCHECKSUMAGG";
case 0x73: "CNVTCHAR";
case 0x74: "AOPCHECKSUMAGGU";
case 0x75: "TPE";
case 0x76: "COMPHD";
case 0x77: "SETUSER";
case 0x78: "OFFSET";
case 0x79: "RETURNSTATUS";
case 0x7a: "AOPCHECKINDEX";
case 0x7b: "CONSTRAINT";
case 0x7c: "PROCID";
case 0x7d: "UPDATECURSOR";
case 0x7e: "DELETECURSOR";
case 0x7f: "AOPSTATMAN";
case 0x80: "RESDOM";
case 0x81: "EQ";
case 0x82: "LT";
case 0x83: "LE";
case 0x84: "GT";
case 0x85: "GE";
case 0x86: "NE";
case 0x87: "IS";
case 0x88: "AND";
case 0x89: "OR";
case 0x8a: "ADD";
case 0x8b: "SUB";
case 0x8c: "MUL";
case 0x8d: "DIV";
case 0x8e: "BYHEAD";
case 0x8f: "AGHEAD";
case 0x90: "CONCAT";
case 0x91: "MOD";
case 0x92: "ALL";
case 0x93: "CHANGETRACK";
case 0x94: "UNION";
case 0x95: "EXCEPTSET";
case 0x96: "INTERSECT";
case 0x98: "RULE";
case 0x99: "DENY";
case 0x9a: "SEQUENCE";
case 0x9c: "BOOLAND";
case 0x9d: "BOOLOR";
case 0x9e: "GETBIT";
case 0x9f: "BOOLXOR";
case 0xa0: "COLNAME";
case 0xa1: "COLFMT";
case 0xa2: "ASSIGN";
case 0xa4: "TABNAME";
case 0xa5: "COLINFO";
case 0xa6: "MULTARG";
case 0xa7: "ALTNAME";
case 0xa8: "ALTFMT";
case 0xa9: "ORDER";
case 0xaa: "ERROR";
case 0xab: "INFO";
case 0xac: "RETURNVALUE";
case 0xad: "LOGINACK";
case 0xae: "SQL_CONTROL";
case 0xaf: "ALTCONTROL";
case 0xb0: "DROPSCHEMA";
case 0xb1: "INVOKE";
case 0xb2: "FUNCCREATE";
case 0xb3: "FUNCDESTROY";
case 0xb4: "ROOT";
case 0xb5: "ASMCREATE";
case 0xb6: "CMD";
case 0xb7: "SETIDENTON";
case 0xb8: "SETIDENTOFF";
case 0xb9: "SETON";
case 0xba: "SETOFF";
case 0xbb: "SETSTATON";
case 0xbc: "SETSTATOFF";
case 0xbd: "SETRCON";
case 0xbe: "SETTSIZE";
case 0xbf: "SHUTDOWN";
case 0xc0: "COND";
case 0xc1: "SELECT";
case 0xc2: "SELECT_INTO";
case 0xc3: "INSERT";
case 0xc4: "DELETE_STMT";
case 0xc5: "UPDATE";
case 0xc6: "TABCREATE";
case 0xc7: "TABDESTROY";
case 0xc8: "INDCREATE";
case 0xc9: "INDDESTROY";
case 0xca: "GOTO";
case 0xcb: "DBCREATE";
case 0xcc: "DBDESTROY";
case 0xcd: "GRANT";
case 0xce: "REVOKE";
case 0xcf: "VIEWCREATE";
case 0xd0: "VIEWDESTROY";
case 0xd1: "ROW";
case 0xd2: "ABORT";
case 0xd3: "ALTROW";
case 0xd4: "BEGINXACT";
case 0xd5: "ENDXACT";
case 0xd6: "SAVEXACT";
case 0xd7: "DBEXTEND";
case 0xd8: "ALTERTAB";
case 0xd9: "AUDIT";
case 0xda: "AUDIT_INTO";
case 0xdb: "RETURN";
case 0xdc: "CONFIG";
case 0xdd: "TRIGCREATE";
case 0xde: "PROCCREATE";
case 0xdf: "PROCDESTROY";
case 0xe0: "EXECUTE";
case 0xe1: "TRIGDESTROY";
case 0xe2: "DBOPEN";
case 0xe3: "ENVCHANGE";
case 0xe4: "DUMPDB";
case 0xe5: "LOADDB";
case 0xe6: "DBCC_CMD";
case 0xe7: "CHECKPOINT";
case 0xe8: "DECLARE";
case 0xe9: "DEFAULTCREATE";
case 0xea: "TRUNCATETABLE";
case 0xeb: "DUMPXACT";
case 0xec: "RULECREATE";
case 0xed: "RULEDESTROY";
case 0xee: "DEFAULTDESTROY";
case 0xef: "LOADXACT";
case 0xf0: "BULKINSERT";
case 0xf1: "UPDATESTATS";
case 0xf2: "DISKBUILD";
case 0xf3: "WAITFOR";
case 0xf4: "UDF";
case 0xf5: "KILL";
case 0xf6: "RAISERROR";
case 0xf7: "PRINT";
case 0xf8: "UPDATETEXT";
case 0xf9: "SET";
case 0xfa: "LOADVOL";
case 0xfb: "READTEXT";
case 0xfc: "WRITETEXT";
case 0xfd: "DONE";
case 0xfe: "DONEPROC";
case 0xff: "LAZYWRITER";
case 0x100: "STATSDESTROY";
case 0x101: "SETXCTLVL";
case 0x103: "TRACECREATE";
case 0x104: "TRACESETSTATUS";
case 0x105: "TRACESETEVENT";
case 0x106: "TRACESETFILTER";
case 0x107: "TRACEINFO";
case 0x108: "TRACEEVENTINFO";
case 0x109: "TRACEFILTERINFO";
case 0x10a: "TRACEDATA";
case 0x10b: "TRACEGENEVENT";
case 0x10c: "OBJIDUPDATE";
case 0x10d: "TRACETABLE";
case 0x10e: "ASMDESTROY";
case 0x10f: "ASMALTER";
case 0x110: "TYPEDESTROY";
case 0x111: "TYPECREATE";
case 0x112: "CLRPROCEDURECREATE";
case 0x113: "CLRFUNCTIONCREATE";
case 0x114: "SERVICEALTER";
case 0x115: "MSGTYPECREATE";
case 0x116: "MSGTYPEDESTROY";
case 0x117: "MERGE_STMT";
case 0x118: "BRKRCMPLTNHDLR";
case 0x119: "CONTRACTCREATE";
case 0x11a: "CONTRACTDESTROY";
case 0x11b: "SERVICECREATE";
case 0x11c: "SERVICEDESTROY";
case 0x11d: "QUEUECREATE";
case 0x11e: "QUEUEDESTROY";
case 0x11f: "QUEUEALTER";
case 0x120: "BEGINMONOLOG";
case 0x121: "BEGINDIALOG";
case 0x122: "ENDCONVERSATION";
case 0x123: "MOVECONVERSATION";
case 0x124: "RECEIVE";
case 0x125: "SEND";
case 0x126: "FTXTINDEX_CREATE";
case 0x127: "FTXTINDEX_ALTER";
case 0x128: "FTXTINDEX_DROP";
case 0x129: "PRTFUNCTIONCREATE";
case 0x12a: "PRTFUNCTIONDROP";
case 0x12b: "PRTSCHEMECREATE";
case 0x12c: "PRTSCHEMEDROP";
case 0x12d: "ENABLETRIGGER";
case 0x12e: "DISABLETRIGGER";
case 0x130: "FTXTCATALOG_CREATE";
case 0x131: "FTXTCATALOG_ALTER";
case 0x132: "FTXTCATALOG_DROP";
case 0x135: "XMLSCHEMACREATE";
case 0x136: "XMLSCHEMAALTER";
case 0x137: "XMLSCHEMADROP";
case 0x138: "ENDPOINTCREATE";
case 0x139: "ENDPOINTALTER";
case 0x13a: "ENDPOINTDROP";
case 0x13b: "USERCREATE";
case 0x13c: "USERALTER";
case 0x13d: "USERDROP";
case 0x13e: "BRKRMSGXMITTER";
case 0x13f: "ROLECREATE";
case 0x140: "ROLEALTER";
case 0x141: "ROLEDROP";
case 0x142: "APPROLECREATE";
case 0x143: "APPROLEALTER";
case 0x144: "APPROLEDROP";
case 0x145: "LOGINCREATE";
case 0x146: "LOGINALTER";
case 0x147: "LOGINDROP";
case 0x148: "SYNONYMCREATE";
case 0x149: "SYNONYMDROP";
case 0x14a: "CREATESCHEMA";
case 0x14b: "ALTERSCHEMA";
case 0x14c: "AGGCREATE";
case 0x14d: "AGGDESTROY";
case 0x14e: "CLRTRIGGERCREATE";
case 0x14f: "PRTFUNCTIONALTER";
case 0x150: "PRTSCHEMEALTER";
case 0x151: "INDALTER";
case 0x152: "GET_CONVGROUP";
case 0x153: "BRKRMSGDSPTCHR";
case 0x154: "BRKREVENTHNDLR";
case 0x155: "BRKRINITIALIZER";
case 0x156: "BRKRTASK";
case 0x157: "ROUTECREATE";
case 0x158: "ROUTEALTER";
case 0x159: "CONVTIMERBEGIN";
case 0x15a: "ROUTEDESTROY";
case 0x15b: "XE_DISPATCHER";
case 0x15c: "RESOURCEMONITOR";
case 0x15d: "BEGINTRY";
case 0x15e: "BEGINCATCH";
case 0x15f: "ENDTRYCATCH";
case 0x160: "EVENTNOTIFICATIONCREATE";
case 0x161: "EVENTNOTIFICATIONDROP";
case 0x162: "XMLINDEXCREATE";
case 0x163: "XE_TIMER";
case 0x164: "BROKER_PRIORITY_CREATE";
case 0x165: "DMLINTERNAL";
case 0x166: "BINDINGCREATE";
case 0x167: "BINDINGALTER";
case 0x168: "BINDINGDESTROY";
case 0x169: "TRCQUEUETASK";
case 0x16a: "FTXT_CATMON_TASK";
case 0x16b: "FTXT_IGATH_TASK";
case 0x16c: "FTXT_AUTOPROP_TASK";
case 0x16d: "FTXT_AUTOPROPMON_TASK";
case 0x16e: "MSGTYPEALTER";
case 0x170: "CERTCREATE";
case 0x171: "CERTDROP";
case 0x172: "CERTALTER";
case 0x173: "FAKEGOTO";
case 0x174: "SYSCACHEOBJECTS";
case 0x175: "EXECUTEAS";
case 0x176: "REVERT";
case 0x177: "CERTDUMP";
case 0x178: "RESTOREFILELISTONLY";
case 0x179: "RESTOREVERIFYONLY";
case 0x17a: "RESTOREREWINDONLY";
case 0x17b: "RESTORELABELONLY";
case 0x17c: "FLUSH_LAZY_COMMIT_CMD";
case 0x17d: "SECDESCCREATE";
case 0x17e: "SECDESCDROP";
case 0x17f: "SECDESCALTER";
case 0x182: "OBFUSKEYCREATE";
case 0x183: "OBFUSKEYALTER";
case 0x184: "OBFUSKEYDROP";
case 0x185: "OBFUSKEYOPEN";
case 0x186: "OBFUSKEYCLOSE";
case 0x187: "OBFUSKEYCLOSEALL";
case 0x188: "SRVMASTERKEYALTER";
case 0x189: "SRVMASTERKEYDUMP";
case 0x18a: "SRVMASTERKEYLOAD";
case 0x18b: "ADDDROPCRYPTO";
case 0x18c: "ALTERAUTHORIZATION";
case 0x18d: "SELECTWITHOUTQUERY";
case 0x18e: "DBCC_TABLE_CHECK";
case 0x18f: "DBCC_TABLE_REPAIR";
case 0x190: "DBCC_ALLOC_CHECK";
case 0x191: "DBCC_ALLOC_REPAIR";
case 0x192: "DBCC_SYSTABLE_CHECK";
case 0x193: "DBCC_SYSTABLE_REPAIR";
case 0x194: "DBCC_SSB_CHECK";
case 0x195: "DBCC_CATALOG_CHECK";
case 0x196: "DBCC_INDEXEDVIEW_CHECK";
case 0x197: "DBCC_INDEXEDVIEW_REPAIR";
case 0x198: "CREDENTIALCREATE";
case 0x199: "CREDENTIALALTER";
case 0x19a: "CREDENTIALDROP";
case 0x19b: "MASTERKEYCREATE";
case 0x19c: "MASTERKEYDROP";
case 0x19d: "MASTERKEYOPEN";
case 0x19e: "MASTERKEYCLOSE";
case 0x19f: "MASTERKEYLOAD";
case 0x1a0: "MASTERKEYDUMP";
case 0x1a1: "MASTERKEYALTER";
case 0x1a2: "MASTERKEYALLCLOSE";
case 0x1a3: "ASYMKEYCREATE";
case 0x1a4: "ASYMKEYDROP";
case 0x1a5: "ASYMKEYOPEN";
case 0x1a6: "ASYMKEYCLOSE";
case 0x1a7: "ASYMKEYLOAD";
case 0x1a8: "ASYMKEYDUMP";
case 0x1a9: "ASYMKEYALTER";
case 0x1aa: "ASYMKEYALLCLOSE";
case 0x1ab: "DBM_MSGXMITTER";
case 0x1ac: "DBCC_SHRINK_RECLAIM_SPACE";
case 0x1ad: "DBCC_SHRINK_COMPACT_FILES";
case 0x1ae: "DBCC_SHRINK_COMPACT_LOBS";
case 0x1af: "RDB_DBCC_TABLE_CHECK";
case 0x1b0: "RDB_DBCC_TABLE_REPAIR";
case 0x1b1: "RDB_DBCC_ALLOC_CHECK";
case 0x1b2: "RDB_DBCC_ALLOC_REPAIR";
case 0x1b3: "RDB_DBCC_SYSTABLE_CHECK";
case 0x1b4: "RDB_DBCC_SYSTABLE_REPAIR";
case 0x1b5: "RDB_DBCC_SSB_CHECK";
case 0x1b6: "RDB_DBCC_CATALOG_CHECK";
case 0x1b7: "RDB_DBCC_INDEXEDVIEW_CHECK";
case 0x1b8: "RDB_DBCC_INDEXEDVIEW_REPAIR";
case 0x1b9: "USEDB";
case 0x1ba: "UTPRINTF";
case 0x1bb: "SECURITYAUDIT";
case 0x1bc: "FSAGENT";
case 0x1bd: "XEVENT_CREATE";
case 0x1be: "XEVENT_ALTER";
case 0x1bf: "XEVENT_DROP";
case 0x1c0: "CREATE_RESOURCE_POOL";
case 0x1c1: "ALTER_RESOURCE_POOL";
case 0x1c2: "DROP_RESOURCE_POOL";
case 0x1c3: "CREATE_RESOURCE_GROUP";
case 0x1c4: "ALTER_RESOURCE_GROUP";
case 0x1c5: "DROP_RESOURCE_GROUP";
case 0x1c6: "ALTER_RESOURCE_GOVERNOR";
case 0x1c7: "CRYPTOPROVCREATE";
case 0x1c8: "CRYPTOPROVALTER";
case 0x1c9: "CRYPTOPROVDROP";
case 0x1ca: "DEK_CREATE";
case 0x1cb: "DEK_ALTER";
case 0x1cc: "DEK_DROP";
case 0x1cd: "BROKER_PRIORITY_ALTER";
case 0x1ce: "BROKER_PRIORITY_DROP";
case 0x1cf: "CLONEREFRESH";
case 0x1d0: "FAILUREMONITOR_HEARTBEAT";
case 0x1d1: "MATRIXTCM";
case 0x1d2: "FILTER_EXPRS";
case 0x1d3: "COMPUTED_COLS";
case 0x1d4: "SERVER_AUDIT_CREATE";
case 0x1d5: "SERVER_AUDIT_ALTER";
case 0x1d6: "SERVER_AUDIT_DROP";
case 0x1d7: "AUDITSPECIFICATIONCREATE";
case 0x1d8: "AUDITSPECIFICATIONALTER";
case 0x1d9: "AUDITSPECIFICATIONDROP";
case 0x1da: "FTXTSTOPLIST_CREATE";
case 0x1db: "FTXTSTOPLIST_ALTER";
case 0x1dc: "FTXTSTOPLIST_DROP";
case 0x1dd: "TABVARCREATE";
case 0x1de: "NOPFORCTE";
case 0x1df: "INSERTEXEC";
default: "Undefined";
}
Xinwei Hong, SQL Server ProtocolsDisclaimer: This posting is provided "AS IS" with no warranties, and confers no rights
Original Post: CurCmd in TDS DONE token
The content of the postings is owned by the respective author. SQL Feeds is not responsible for the contents of the postings. This site is automatically generated and cannot be reviewed for abusive content. If you find abusive content on SQL Feeds, please contact us. Designated trademarks and brands are the property of their respective owners. All rights reserved.