2016-04-30 15 views
1

に変換します。これをアクセスcreate tableにどのように変換しますか?SQL Server 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 
) 
+0

確かNCHARと同等で、パッド入りの文字列になりますNVARCHARと同等ですが、私はSQLにすべての時間をそれを使用しますサーバ。最初の行を挿入できるように、列をnullableとしてマークするだけです。 –

+0

私自身の部分的な答えでは、 'NULL'だけでうまく動作しているようです。 –

答えて

1

私がアクセス即時ウィンドウでこの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);" 

それはADO/OLEDBから実行されなければならないキーワードDEFAULTを含むので。

CurrentProject.Connection.Execute strDdl 

このステートメントは、次のように正常に実行されました。 DAOから実行すると失敗します--- "実行時エラー '3292':フィールド定義で構文エラーが発生しました。


注:

  • TEXTは
  • CHARは
+0

また、C#/ OleDbで動作します –

+0

ええ、私はそれを明確にしませんでした。クライアントコード言語に関係なく、OleDbを使用して成功する必要があります。また、ADOはOleDbに基づいています。 – HansUp

関連する問題