Kann eine BCP-Version 8.0-Formatdatei einen Spaltennamen haben, der ein SQL-Schlüsselwort ist?

Ich habe eine Formatdatei, wo ich möchte, dass eine der Spalten "Gruppe" ist. Ich erstelle automatisch die Formatdatei und ein Client möchte eine Datei mit "group" als eine der Spalten hochladen. Ich könnte es einschränken, so dass sie keine SQL-Schlüsselwörter verwenden können, aber dann brauche ich eine Funktion, um zu bestimmen, ob ein Spaltenname ein SQL-Schlüsselwort ist. Daher möchte ich den Benutzer dabei unterstützen, seine Kunden so zu benennen, wie sie wollen. Ich frage mich, ob das möglich ist. Ich habe versucht, Klammern zu verwenden, aber das schien nicht zu funktionieren. Meine Datei sieht folgendermaßen aus:

8.0
1
1 SQLCHAR 0 0 "\r\n" 1  [group] SQL_Latin1_General_CP1_CI_AS
1

2 Antworten

Ich habe dies auf SQL 2005 SP2 (Zieldatenbanken in beiden Kompatibilitätsmodi 80 und 90) auf verschiedene Arten getestet und es funktioniert OK, wenn ich die SQL 2005-Version von bcp verwende.

Allerdings habe ich es auch mit der SQL 2000-Version von bcp getestet, und das ist mit fehlgeschlagen

Error = [Microsoft][ODBC SQL Server Driver][SQL Server]Incorrect syntax near the keyword 'group'.

was ich denke ist, was du bekommst.

Können Sie das System, auf dem bcp ausgeführt wird, aktualisieren, um die SQL 2005-Clienttools zu verwenden?

Wenn Sie glauben, dass Sie bereits ein Upgrade durchgeführt haben, überprüfen Sie Ihre PATH-Umgebungsvariable, um dies zu bestätigen

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

(angepasst für Ihre Installation) erscheint vorher

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

Andernfalls werden die SQL 2000-Befehlszeilentools gegenüber SQL 2005 bevorzugt verwendet

1
hinzugefügt

In MS SQL können Sie einen SQL-Schlüssel als Spaltennamen verwenden, wenn Sie ihn in ein Zitat eingeben.

Example: SELECT id, "group" FROM myTable

0
hinzugefügt