2009-11-01 8 views
2

Existe-t-il une requête que je peux écrire sur une INFORMATION_SCHEMA ou sur les tables système pour déterminer si une colonne est une colonne d'identité dans SQL CE version 3.5?SQL CE Compact 3.5 Colonnes d'identité pour une table

+0

Voici le lien Web pour la réponse: http: //social.msdn .microsoft.com/Forums/fr-FR/sqlce/thread/f0a5b6ef-9375-4af2-9a17-34db3ca700bd? prof = requis & lc = 1033 – rxm0203

Répondre

0

Utiliser COLUMNPROPERTY. Ur référence

a) COLUMNPROPERTY (Transact-SQL)

b) Identity Columns

+0

La fonction COLUMNPROPERTY n'est pas disponible dans SQL CE Compact 3.5. Voici le lien pour votre référence: http://msdn.microsoft.com/fr-fr/library/ms174077.aspx – rxm0203

0

Essayez la requête suivante:

;WITH PK_INFO AS (SELECT CON.TABLE_CATALOG, CON.TABLE_SCHEMA, CON.CONSTRAINT_NAME, USO.COLUMN_NAME 
FROM INFORMATION_SCHEMA.TABLE_CONSTRAINTS CON 
    JOIN INFORMATION_SCHEMA.KEY_COLUMN_USAGE USO ON CON.CONSTRAINT_NAME = USO.CONSTRAINT_NAME 
     AND CON.TABLE_CATALOG = USO.TABLE_CATALOG AND CON.TABLE_SCHEMA = USO.TABLE_SCHEMA 
WHERE CON.TABLE_NAME = 'YOUR_TABLE' 
    AND CON.CONSTRAINT_TYPE = 'PRIMARY KEY' 
    ) SELECT DISTINCT CASE WHEN (PK.COLUMN_NAME IS NULL) THEN 0 ELSE 1 END AS COLUMN_IS_PRIMARYKEY, * 
FROM INFORMATION_SCHEMA.COLUMNS COL 
LEFT JOIN PK_INFO PK on COL.COLUMN_NAME = PK.COLUMN_NAME WHERE COL.TABLE_NAME = 'YOUR_TABLE' ORDER BY COL.ORDINAL_POSITION ASC