【问题标题】:Translate SQL Server CREATE TABLE into Access将 SQL Server CREATE TABLE 转换为 Access
【发布时间】:2023-03-31 12:10:01
【问题描述】:

如何将其转换为 Access create table

CREATE TABLE Employee
(
    EmployeeKey INTEGER NOT NULL IDENTITY PRIMARY KEY,
    FirstName nvarChar(25) NOT NULL,
    MiddleName nvarChar(25) NULL,
    LastName nVarChar(25) NOT NULL,
    Title nVarChar(100) null,
    ManagerKey INT NULL REFERENCES Employee(EmployeeKey),
    CreatedDate DateTime NOT NULL DEFAULT NOW(),
    UpdatedDate DateTime NULL
)

【问题讨论】:

  • 当然,我一直在 SQL Server 中使用它。您只需将该列标记为可为空,以便插入第一行。
  • 只有NULL 在我的部分答案中似乎工作正常。

标签: ms-access ddl


【解决方案1】:

我在 Access Immediate 窗口中构造了这个 DDL 语句:

strDdl = "CREATE TABLE Employee (" & _
    "EmployeeKey IDENTITY PRIMARY KEY, " & _
    "FirstName TEXT(25) NOT NULL, " & _
    "MiddleName TEXT(25), " & _
    "LastName TEXT(25) NOT NULL, " & _
    "Title TEXT(100), " & _
    "ManagerKey LONG REFERENCES Employee(EmployeeKey), " & _
    "CreatedDate DATETIME NOT NULL DEFAULT NOW(), " & _
    "UpdatedDate DATETIME);"

由于它包含关键字DEFAULT,它必须从ADO/OleDb 执行。

CurrentProject.Connection.Execute strDdl

该语句成功执行,如图所示。如果从 DAO 执行,它将失败 --- “运行时错误 '3292':字段定义中的语法错误。”


注意事项:

  • TEXT 等价于 NVARCHAR
  • CHAR 等价于 NCHAR,会产生填充字符串

【讨论】:

  • 是的,我没有说清楚。无论客户端代码语言如何,它都应该成功使用 OleDb。 ADO 基于 OleDb。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-07-10
  • 2012-12-06
  • 2015-12-25
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多