2008-09-06 29 views
5

クライアントの古いASP/Accessサイトを更新する - 既存のテーブルに列を追加し、既定値を設定するにはSQLが必要です。動作しません - 任意のアイデア?既定値で列を追加するSQL - Access 2003

ALTER TABLE documents ADD COLUMN membersOnly NUMBER DEFAULT 0 

がGoogleで検索し、デフォルト値のための命令は、他のフィールドタイプのために働くが、私は数を追加したい見たことがあります:

これは、私はこれが仕事をしたい

ALTER TABLE documents ADD COLUMN membersOnly NUMBER 

正常に動作します。ありがとう!

+0

で発見されていない[完全に働いた]おかげで、(http://stackoverflow.com/questions/47535/sql-to-add-column-with-default-value-access- 2003#47552)。しかし、それは私がそれを行うためにMDBをダウンロードしなければならないことを意味し、私はオフラインにする必要はありませんようにSQLをしたかった!私はYESNOが本質的なデフォルト値を持っているので、この機会に代わりにそれを取り除くことができました。 ANSI互換モードについて知っていて嬉しいです。本当にありがとうございます。 – Polsonby

答えて

8

ツール - >オプション - >テーブル/クエリ - >(右下にあります):Sql Server互換構文 - このデータベースのオプションをオンにします。

あなたはあなたのクエリを実行することができます

ALTER TABLE documents ADD COLUMN membersOnly NUMBER DEFAULT 0 
+1

これは私のためには機能しません。 columnを作成しますが、デフォルトは設定しません。 – JohnMerlino

+0

+1ありがとう、このオプションについて知りませんでした。これは単に、DEFAULT句を追加する必要はありません、それはあなたが標準構文を使用して、デフォルトの制約を追加することはできませんが、私はそれが何かのために有用であろうと確信しています。 – harpo

+4

アクセスオプションの設定は、Accessユーザーインターフェイス(およびAccess内では、動作中のAccessアプリケーションを壊す可能性のある不幸な副作用が多数あります)を使用して行われたデータベース上の操作にのみ関係します。外部のAccessからSQL 92構文を使用するには、ADOを使用してDDL文を実行します。 –

0

はどのように更新SQLを実行するためにデータベースに接続していますか? ADOを使用してODBC互換モードを使用できます。 Accessでデータベースを開くことはありません。

0

Sql Server Compatible Syntaxが既にオンになっているので、dbをオフラインにする前に、上記のSQL文を(ASPからのADO接続を介して)実行しようとするだけの価値があります。ありがとう、これは私を助けた。

6

ADOを使用すると、DDL文を実行してフィールドを作成し、そのデフォルト値を設定できます。

CurrentProject.Connection.Execute _ 
    "ALTER TABLE discardme ADD COLUMN membersOnly SHORT DEFAULT 0" 
+1

ADO経由であるため、SQL 92モードを使用します。この質問の回答の他の情報の多くは、まったくのごみです。 –

0

ツール - >オプション - >テーブル/クエリ - >(右下にあります)Sql Server互換構文 - このデータベースのオプションをオンにします。

は、MS Accessの2010

関連する問題