0

Я делаю приложение в 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)
  • Если это позволяет дубликаты. (частично решено)

Как я могу обновить запрос, чтобы получить эту информацию в дополнение к тому, что она уже дает мне?

Спасибо и извините за мой ужасный английский (я итальянец, и мне сложно писать на другом языке).

+0

Не знаю точно, какие ограничения есть версии CE, но попробовать 'EXEC sp_help @ tablename' – lad2025

+0

Возможно дубликат [этого] (http://stackoverflow.com/questions/1656472/sql-ce-compact-3-5-identity-columns-for-a-table) –

ответ

1

Вы можете проверить, не является ли столбец autoinc_increment NOT NULL, то это столбец IDENTITY. Но в годовом исчислении может также просто использовать мою библиотеку SqlCeScripting, чтобы получить всю эту информацию с помощью кода вместо того, чтобы заново изобретать эти запросы самостоятельно - http://exportsqlce.codeplex.com