Установка ANSI_NULLS в тексте команды дает ошибку - PullRequest
2 голосов
/ 16 декабря 2011

Мне нужно установить ANSI_NULLS и несколько других параметров базы данных, прежде чем я выполню некоторые запросы.Поэтому в моем коде

const string query_prefix = "SET ANSI_NULLS ON \n GO \n SET ANSI_PADDING ON \n GO \n SET ANSI_WARNINGS ON \n GO \n SET CONCAT_NULL_YIELDS_NULL ON \n GO \n SET QUOTED_IDENTIFIER ON \n GO \n SET NUMERIC_ROUNDABORT OFF \n GO \n ";

, который я использую как

SqlCommand cmd = new SqlCommand(query_prefix + "SELECT UserID,FirstName,MiddleName,LastName FROM mydb.dbo.UserInfo where UserID=10277",con);

, я добавил выше "\ n", потому что SET ANSI_NULLS ON GO SET ANSI_PADDING ON GO выдавал ошибку "Неверный синтаксис рядом сИДТИ".В студии управления, если GO находится в новой строке, я не получаю неправильную синтаксическую ошибку, в противном случае я получаю.Поэтому я добавил «\ n», но он все равно выдает ошибку.

Так как мне установить эти параметры базы данных из кода?Я не могу использовать процедуру.

Ответы [ 2 ]

3 голосов
/ 16 декабря 2011
  • Открытие соединения
  • Создание объекта SqlCommand для выполнения SET ANSI_NULLS ON и SET_ANSI_PADDING_ON с методом ExecuteNonQuery
  • Выполнение оператора select как отдельной SqlCommand в том же соединении

Пример кода можно найти в этой ТАК .Вы также можете установить значения по умолчанию для этих параметров на уровне базы данных, если это соответствует вашей среде.

3 голосов
/ 16 декабря 2011

GO - это пакетный разделитель в SSMS, он не является командой SQL и не может быть включен в такой запрос.

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