1


0

列の1つを "group"にしたいフォーマットファイルがあります。 フォーマットファイルを自動生成していますが、クライアントは "group"を列の1つとして含むファイルをアップロードしようとしています。 SQLキーワードを使用できないように制限することもできますが、その場合は列名がSQLキーワードかどうかを判断する関数が必要になります。そのため、ユーザーがクライアントに名前を付けることができるようにします。 これが可能かどうか私は思っています。 角かっこを使ってみましたが、うまくいきませんでした。 私のファイルはこんな感じです:

8.0 1 1 SQLCHAR 0 0 "\ r \ n" 1 [グループ] SQL_Latin1_General_CP1_CI_AS

2 Answer


1


私はこれをSQL 2005 SP2(互換モード80と90の両方のターゲットデータベース)でいくつかの異なる方法でテストしましたが、SQL 2005バージョンのbcpを使っても問題なく動作します。

しかし、私はまたbcpのSQL 2000バージョンでそれをテストしました、そしてそれは失敗しました

エラー= [Microsoft] [ODBC SQL Serverドライバ] [SQL Server]キーワード 'group'付近の構文が正しくありません。

それは私があなたが得ているものだと思います。

SQL 2005クライアントツールを使用するようにbcpを実行しているシステムをアップグレードすることはできますか?

すでにアップグレードしたと思われる場合は、PATH環境変数を調べてそれを確認してください。

C:¥Program Files¥Microsoft SQL Server¥90¥Tools¥binn¥

(ご使用のシステムに合わせて調整)

C:\ Program Files \ Microsoft SQL Server \ 80 \ Tools \ BINN

それ以外の場合は、SQL 2000よりもSQL 2000のコマ​​ンドラインツールが使用されます。


0


MS SQLでは、引用符で囲むと、列名としてSQLキーワークを使用できます。

例: SELECT id、" group "FROM myTable