【问题标题】:Defining Data Types in SQL Server by Fields not Columns在 SQL Server 中按字段而不是按列定义数据类型
【发布时间】:2011-05-05 17:50:42
【问题描述】:

我希望在 SQL Server 2005 中按字段定义数据类型。我的源是 Excel 电子表格,我不能按列定义,因为每一行都需要一组定义应用于该行中的每个字段。例如,第 1 行要求 field1 为 CHAR,而第 2 行中的字段 1 需要为 DATE。有什么建议么?提前致谢。

【问题讨论】:

  • “字段”在您使用的上下文中是什么意思?您指的是Excel“单元格”吗? SQL Server 要求列是特定的数据类型;不能让列的一行是日期,而同一列的下一行是整数,除非将它们中的每一个都转换为通用数据类型(例如 VarChar)。

标签: sql vb.net sql-server-2005 visual-studio-2005


【解决方案1】:

您可以使用sql_variant 列来存储任何数据类型。它将允许 Excel 日期、字符串和数字存储在同一 SQL Server 列中。 sql_variant 列可以包含任何 SQL 数据类型的值,而不会损失精度。

CREATE TABLE Sheet
(
    RowNumber int NOT NULL,
    ColumnLetter varchar(5) NOT NULL,
    FieldValue sql_variant NULL,
    PRIMARY KEY (RowNumber, ColumnLetter)
)
INSERT Sheet SELECT 1, 'A', 'Values'
INSERT Sheet SELECT 2, 'A', GETDATE()
INSERT Sheet SELECT 3, 'A', 123
INSERT Sheet SELECT 4, 'A', 123.00

【讨论】:

    猜你喜欢
    • 2017-02-17
    • 2014-07-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-05-06
    • 1970-01-01
    相关资源
    最近更新 更多