although it occurs to me that there is a trap there 
CREATE TABLE MyTable( PKCol1 INT PRIMARY KEY, PKCol2 INT PRIMARY KEY, Col3 ...)andCREATE TABLE MyTable( PKCol1 INT, PKCol2 INT, Col3 ... PRIMARY KEY ( PKCol2, PKCol1 ))orCREATE TABLE MyTable( PKCol1 INT, PKCol2 INT, Col3 ... CONSTRAINT [PK_MyName] PRIMARY KEY CLUSTERED ( PKCol2, PKCol1 ) WITH (IGNORE_DUP_KEY = OFF))
Option 1 does not allow the order of the keys to be stated - important that most selective key-field is first - but it may not be first in the column definition list.Option 2 allows ordering of keys, but not much else (but is quite nice because you can see the ordering and which fields are in the PK - separately for the hundreds
of defined columnsOption 3 allows you to put a Name on the PK which makes it MUCH easier to drop etc (well, maybe not the PK but for other constraints - such as DEFAULTS - its very helpful to have them named)Option 3 also allows other options to be specified.And at that point you might as well put it in a separate statement 'coz it is as-good-as a separate statement by then