Как получить определенную информацию о столбцах в SQL Server CE
Я делаю приложение в VB.NET для создания и управления базами данных SQL Server CE, и мне нужно получить некоторую информацию о столбцах, чтобы поместить их в DataGridView (каждая строка dgv ссылается на столбец таблицы база данных).
Я сделал неполный запрос с некоторыми материалами, найденными в Интернете, чтобы получить:
- Название столбца;
- Тип данных;
- Если столбец является первичным ключом;
- Значение по умолчанию для столбца;
- Если столбец обнуляем.
Вот запрос:
SELECT COL.[COLUMN_NAME] AS COLNAME,
COL.[DATA_TYPE],
CASE WHEN IND.[COLUMN_NAME] IS NOT NULL THEN 1 ELSE 0 END AS PK,
COL.[COLUMN_DEFAULT],
CASE WHEN COL.[IS_NULLABLE] = 'YES' THEN 1 ELSE 0 END AS ALLOW_NULL
FROM INFORMATION_SCHEMA.COLUMNS AS COL LEFT JOIN INFORMATION_SCHEMA.INDEXES AS IND ON COL.COLUMN_NAME=IND.COLUMN_NAME AND COL.TABLE_NAME=IND.TABLE_NAME
WHERE COL.TABLE_NAME='MyTable'
Это работает довольно хорошо, но мне также нужна следующая информация:
- Если столбец имеет идентичность; (решено, спасибо ErikEJ)
- Если это позволяет дубликаты. (частично решено)
Как я могу обновить запрос, чтобы получить эту информацию в дополнение к тому, что он мне уже дает?
Спасибо и извините за мой ужасный английский (я итальянский, и мне довольно трудно писать на другом языке).
1 ответ
Вы можете проверить, не является ли столбец autoinc_increment НЕ НЕДЕЙСТВИТЕЛЬНЫМ, тогда это столбец IDENTITY. Но вы также можете просто использовать мою библиотеку SqlCeScripting, чтобы получить всю эту информацию с помощью кода, вместо того, чтобы заново изобретать эти запросы самостоятельно - http://exportsqlce.codeplex.com/