Определите первичный ключ таблицы с помощью TSQL

Меню инструментов-> Опции

Затем в области "Project And Solutions", можно выбрать для отслеживания активного объекта.

48
задан OMG Ponies 6 October 2009 в 03:47
поделиться

6 ответов

This should get you started:

SELECT *
    FROM INFORMATION_SCHEMA.TABLE_CONSTRAINTS tc
        JOIN INFORMATION_SCHEMA.CONSTRAINT_COLUMN_USAGE ccu ON tc.CONSTRAINT_NAME = ccu.Constraint_name
    WHERE tc.TABLE_NAME = 'TableName' and tc.CONSTRAINT_TYPE = 'Primary Key'
70
ответ дан 7 November 2019 в 12:05
поделиться

How about

sp_pkeys 'TableName'
41
ответ дан 7 November 2019 в 12:05
поделиться
SELECT ccu.COLUMN_NAME, ccu.CONSTRAINT_NAME
FROM INFORMATION_SCHEMA.TABLE_CONSTRAINTS AS tc
    INNER JOIN INFORMATION_SCHEMA.CONSTRAINT_COLUMN_USAGE AS ccu
        ON tc.CONSTRAINT_NAME = ccu.CONSTRAINT_NAME
WHERE tc.TABLE_CATALOG = 'Your_Catalog'    -- replace with your catalog
    AND tc.TABLE_SCHEMA = 'dbo'            -- replace with your schema
    AND tc.TABLE_NAME = 'Your_Table'       -- replace with your table name
    AND tc.CONSTRAINT_TYPE = 'PRIMARY KEY'
18
ответ дан 7 November 2019 в 12:05
поделиться

Вот таблица, основанная на системных таблицах из SQL 2005 (на 99% уверены, что она будет работать в 2008 году). Здесь будут перечислены все PK для всех определяемых пользователем таблиц со всеми столбцами и некоторыми дополнительными пустяками, которые можно удалить. Добавьте параметры, чтобы выбрать таблицу за раз.

SELECT
   schema_name(ta.schema_id)  SchemaName
  ,ta.name  TableName
  ,ind.name
  ,indcol.key_ordinal Ord
  ,col.name  ColumnName
  ,ind.type_desc
  ,ind.fill_factor
 from sys.tables ta
  inner join sys.indexes ind
   on ind.object_id = ta.object_id
  inner join sys.index_columns indcol
   on indcol.object_id = ta.object_id
    and indcol.index_id = ind.index_id
  inner join sys.columns col
   on col.object_id = ta.object_id
    and col.column_id = indcol.column_id
 where ind.is_primary_key = 1
 order by
   ta.name
  ,indcol.key_ordinal
21
ответ дан 7 November 2019 в 12:05
поделиться
EXEC sp_Pkeys @tableName
4
ответ дан 7 November 2019 в 12:05
поделиться
exec [sys].[sp_primary_keys_rowset] @table_name= 'TableName'
4
ответ дан 7 November 2019 в 12:05
поделиться
Другие вопросы по тегам:

Похожие вопросы: