вставить в столбец таблицы SQL как GUID - PullRequest
0 голосов
/ 18 марта 2010

Я пытался с ado.net создать таблицу columnName с уникальным именем. в качестве уникального имени я использую new Guid()

    Guid sysColumnName = new Guid();
    sysColumnName = Guid.NewGuid();

    string stAddColumn = "ALTER TABLE " + tableName + " ADD " + sysColumnName.ToString() + " " + convertedColumnType + "  NULL";
    SqlCommand cmdAddColumn = new SqlCommand(stAddColumn, con);
    cmdAddColumn.ExecuteNonQuery();
    con.Close();

и не получается:

System.Data.SqlClient.SqlException: неправильный синтаксис рядом с '-'. в System.Data.SqlClient.SqlConnection.OnError (исключение SqlException, логическое прерывание соединения) в System.Data.SqlClient.SqlInternalConnection.OnError (исключение SqlException, логическое разрыв соединения)

Теперь вопрос, как я могу это исправить, или как можно использовать другой способ создания уникального столбца?

Ответы [ 3 ]

7 голосов
/ 18 марта 2010

Вам необходимо использовать [...] для экранирования имени столбца, содержащего знаки минуса, или, что еще лучше: не создавайте столбцы (или таблицы) со случайными именами.

0 голосов
/ 18 марта 2010

Это форматирует guid без знаков "-":

string columnName = Guid.ToString("N")

Но создавать столбцы со случайными именами - это плохая практика. Вы уверены, что идете правильным путем?

0 голосов
/ 18 марта 2010

попробуйте заменить тире подчеркиванием

var sysColumnName = Guid.NewGuid.ToString().Replace('-', '_');

Кроме того, вы не должны создавать sql таким способом. Вы должны использовать параметризованные команды .

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...