【问题标题】:Date stored as a string in sql server when upsized from access 2007从访问 2007 升级时在 sql server 中存储为字符串的日期
【发布时间】:2011-10-25 18:00:47
【问题描述】:

当我从 Access2007 升级到 SQL Server 2008 时,我几乎没有问题...

1.文本到 nvarchar(255)

Access 中文本数据类型的字段在 sql server 中自动转换为 nvarchar(255)(I have unicode data),但实际上列长度并没有那么大,我可以将数据类型更改为 nvarchar(55)还是 varchar(100)?会不会有问题?

2。以文本形式存储的日期

由于日期列(mm/dd/yyyy),一些表在尝试升迁时抛出错误,我所做的是我将访问中的date/time列数据类型更改为text数据类型,然后升迁成功,它在 sql server 中转换为nvarchar(255)。我已在 sql server 中将 nvarchar 数据类型转换为 date 数据类型,但这并没有在访问前端显示日历符号。如何在我的访问前端的日期字段中获取日历符号?

I have tried the solution given in this link, but it did not work...请给我一些建议

【问题讨论】:

  • 您已经了解了为什么永远不要使用升迁向导,因为它会做出错误的选择。您应该先自己设计 SQL 表并导入数据。
  • @HLGEM 请详细说明...升迁是一个非常糟糕的选择,但我没有其他选择。对我来说,SQL Server 导入和导出向导从来没有用过……而且我不能使用open data source 命令,因为我公司托管的 sql server 不支持它。您还建议我如何传输数据?
  • 我会使用 SSIS。但是由于您已经使用了该向导,因此请仔细检查并修复数据类型

标签: sql sql-server ms-access-2007


【解决方案1】:

sql server 中的text 已弃用,如果您需要存储 unicode(多语言支持),请使用 nvarchar。否则你可以使用varchar

【讨论】:

  • 如果我保持原样(nvarchar(255)),将来会不会有任何问题(like consuming more memory)?
猜你喜欢
  • 2011-06-03
  • 1970-01-01
  • 2019-08-31
  • 2021-05-02
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-10-04
相关资源
最近更新 更多