• A PK is a logical structure. It means the field(s) that uniquely identify each row in the table.

    This is implemented in SQL Server as a unique index. If you set up a PK, you get a unique index on the table.

    Clustered index (CI) v nonclustered index (NCI) is completely separate. Either can be unique. You get one CI on a table because it is the data. A table without a CI is a heap, and doesn't perform as well in queries. The optimizer in SQL Server is built to work with clustered indexes, so it's recommended that you have a CI on the table.

    The choice of a CI is usually made based on query performance. The PK creation defaults to clustered, but this isn't always the best choice. Often we pick the CI based on range queries. Since it's the data, if you query on some range data, often dates, then a CI on that field can be more efficient.

    For the PK, you can have it as a CI or NCI. If you don't think you have a better choice for a table, then leave the PK as a CI.