(यह उत्तर केवल SQL सर्वर 2005+ के लिए है। मैं MySQL के बारे में कुछ नहीं जानता।)
हां। जैसा कि आपने उल्लेख किया है, प्राथमिक कुंजी बाधा डिफ़ॉल्ट रूप से क्लस्टर्ड इंडेक्स द्वारा समर्थित है। आप निम्न प्रकार से बाधा घोषित करके SQL सर्वर को एक गैर-अनुक्रमित अनुक्रमणिका के साथ बाधा को वापस करने के लिए कह सकते हैं:
ALTER TABLE MyTable
ADD CONSTRAINT PK_MyTable
PRIMARY KEY NONCLUSTERED(Col1);
हां, आप इंडेक्स कुंजी में एक से अधिक कॉलम वाले इंडेक्स को परिभाषित कर सकते हैं। यह वास्तव में एक गैर-संकुल सूचकांक से अलग नहीं है।
CREATE UNIQUE CLUSTERED INDEX IX_MyTable_Clus
ON MyTable(Col1, Col2, Col3);
संदर्भ:ALTER TABLE
, CREATE INDEX