SQL如何知道列的数据类型

SQL如何知道列的数据类型,sql,sql-server-2008,ms-access,Sql,Sql Server 2008,Ms Access,我使用的是MS Access和MS Sql 2008,我需要获取单个表中特定列的数据类型 您可以发布一个代码示例吗?试试这个: SELECT COLUMN_NAME, DATA_TYPE, CHARACTER_MAXIMUM_LENGTH FROM INFORMATION_SCHEMA.COLUMNS WHERE TABLE_SCHEMA = 'schema' AND TABLE_NAME = 'tablename'; 试试这个: SELECT COLUMN_NAME, DATA_

我使用的是MS Access和MS Sql 2008,我需要获取单个表中特定列的数据类型

您可以发布一个代码示例吗?

试试这个:

SELECT
  COLUMN_NAME, DATA_TYPE, CHARACTER_MAXIMUM_LENGTH
FROM INFORMATION_SCHEMA.COLUMNS
WHERE TABLE_SCHEMA = 'schema'
  AND TABLE_NAME = 'tablename';
试试这个:

SELECT
  COLUMN_NAME, DATA_TYPE, CHARACTER_MAXIMUM_LENGTH
FROM INFORMATION_SCHEMA.COLUMNS
WHERE TABLE_SCHEMA = 'schema'
  AND TABLE_NAME = 'tablename';

也可以使用目录视图:

SELECT  sch.name [Schema],
        tbl.name [Table],
        col.name [Column],
        typ.name [Type]
FROM    sys.columns col
JOIN    sys.tables tbl ON 
        tbl.object_id = col.object_id
AND     tbl.name = 'tableName'
JOIN    sys.schemas sch ON
        sch.schema_id = tbl.schema_id
AND     sch.name = 'schemaName'
JOIN    sys.types typ ON
        typ.system_type_id = col.system_type_id

也可以使用目录视图:

SELECT  sch.name [Schema],
        tbl.name [Table],
        col.name [Column],
        typ.name [Type]
FROM    sys.columns col
JOIN    sys.tables tbl ON 
        tbl.object_id = col.object_id
AND     tbl.name = 'tableName'
JOIN    sys.schemas sch ON
        sch.schema_id = tbl.schema_id
AND     sch.name = 'schemaName'
JOIN    sys.types typ ON
        typ.system_type_id = col.system_type_id

我假设您希望以编程方式为MS Access DB获取模式元数据,因为SQL Server还有其他答案。不幸的是,MS Access不提供用于直接查询的
信息\u模式
视图目录(或任何真实模拟),因此您可能必须尝试以下方法之一:

  • 在SQL server中创建一个链接到Access数据库的服务器,然后

  • 在你的应用程序中使用类似的东西


我假设您希望以编程方式为您的MS Access DB获取架构元数据,因为SQL Server还有其他答案。不幸的是,MS Access不提供用于直接查询的
信息\u模式
视图目录(或任何真实模拟),因此您可能必须尝试以下方法之一:

  • 在SQL server中创建一个链接到Access数据库的服务器,然后

  • 在你的应用程序中使用类似的东西


谷歌为您服务吗?感谢Ic不幸的是我找不到解决方案,我需要smt非常简单我是一个真正的初学者谢谢你的评论你是想从Access还是SQL Server获取信息?另外,这是一个临时的、一次性的工作,还是你需要编写这个程序?我正在尝试使用odbc访问Oracle数据库,这只是一次性的工作。谷歌是否支持你?感谢Ic不幸的是我找不到解决方案,我需要smt非常简单我是一个真正的初学者谢谢你的评论你是想从Access还是SQL Server获取信息?另外,这是一个临时的、一次性的作业,还是需要对其进行编程?我正在尝试使用odbc访问Oracle数据库,这只是一次性作业。