如何获取有关 SQL Server CE 中列的一些特定信息
How to get some specific information about columns in SQL Server CE
我正在 VB.NET 创建和管理 SQL 服务器 CE 数据库的应用程序,我必须获取有关列的一些信息,以将它们放入 DataGridView(每一行dgv 的指的是数据库的 table 的列。
我用在互联网上找到的一些东西做了一个不完整的查询得到:
- 列名称;
- 数据类型;
- 如果该列是主键;
- 列的默认值;
- 如果该列可以为空。
查询如下:
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)
- 如果允许重复。 (部分解决)
我如何更新查询以获取这些信息以及它已经提供给我的信息?
感谢并抱歉我糟糕的英语(我是意大利人,我很难用另一种语言写作)。
您可以检查 autoinc_increment 列是否为 NOT NULL,那么它是一个 IDENTITY 列。但是你也可以简单地使用我的 SqlCeScripting 库通过代码获取所有这些信息,而不必自己重新发明这些查询 - http://exportsqlce.codeplex.com
我正在 VB.NET 创建和管理 SQL 服务器 CE 数据库的应用程序,我必须获取有关列的一些信息,以将它们放入 DataGridView(每一行dgv 的指的是数据库的 table 的列。
我用在互联网上找到的一些东西做了一个不完整的查询得到:
- 列名称;
- 数据类型;
- 如果该列是主键;
- 列的默认值;
- 如果该列可以为空。
查询如下:
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)
- 如果允许重复。 (部分解决)
我如何更新查询以获取这些信息以及它已经提供给我的信息?
感谢并抱歉我糟糕的英语(我是意大利人,我很难用另一种语言写作)。
您可以检查 autoinc_increment 列是否为 NOT NULL,那么它是一个 IDENTITY 列。但是你也可以简单地使用我的 SqlCeScripting 库通过代码获取所有这些信息,而不必自己重新发明这些查询 - http://exportsqlce.codeplex.com