Я делаю приложение в VB.NET для создания и управления базами данных SQL Server CE, и мне нужно получить некоторую информацию о столбцах, чтобы поместить их в DataGridView (каждая строка dgv ссылается на столбец таблицы базы данных).Как получить определенную информацию о столбцах в SQL Server CE
Я сделал неполный запрос с некоторыми вещами, найденных в Интернете, чтобы получить:
- Имени столбца;
- Тип данных;
- Если столбец является Первичным ключом;
- Значение по умолчанию для столбца;
- Если столбец является нулевым.
Вот запрос:
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)
- Если это позволяет дубликаты. (частично решено)
Как я могу обновить запрос, чтобы получить эту информацию в дополнение к тому, что она уже дает мне?
Спасибо и извините за мой ужасный английский (я итальянец, и мне сложно писать на другом языке).
Не знаю точно, какие ограничения есть версии CE, но попробовать 'EXEC sp_help @ tablename' – lad2025
Возможно дубликат [этого] (http://stackoverflow.com/questions/1656472/sql-ce-compact-3-5-identity-columns-for-a-table) –