按字段而不是列定义SQL Server中的数据类型

时间:2011-05-05 17:50:42

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

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

1 个答案:

答案 0 :(得分: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