DbCommand не может запустить несколько команд SQL в одном ExecuteNonQuery()
Здравствуйте, у меня есть следующая проблема, и я не могу ее решить.
С DbCommand
Я пытаюсь выполнить этот оператор SQL
Dim strCommnad As String =
"CREATE DEFAULT [dbo].[DOMAIN_XLibPKID_D] AS (0);" + Environment.NewLine +
"CREATE TYPE [dbo].[XLibPKID] FROM BIGINT NOT NULL;" + Environment.NewLine +
"EXEC sp_bindefault 'DOMAIN_XLibPKID_D', 'XLibPKID';"
command.CommandText = strCommnad
command.CommandType = CommandType.Text
command.ExecuteNonQuery()
но я всегда получаю это сообщение об ошибке
Неверный синтаксис рядом с ключевым словом "CREATE".
Но когда я запускаю каждую команду из strCommand
автономный то все работает нормально.
Я использую VS 2010 Professional и SQL Server 2008 R2 Express.
Спасибо за любую помощь.
2 ответа
Я не совсем уверен, что вы пытаетесь сделать - но ваш подход кажется слишком сложным...
Вы, кажется, добавляете DEFAULT
пункт к вашему XLibPKID
колонка - верно? это ALTER TABLE
Заявление должно сделать это тоже:
command.CommandText =
"ALTER TABLE [dbo].[DOMAIN_XLibPKID_D] " +
" ADD CONSTRAINT DF_XLibPKID DEFAULT (0) FOR XLibPKID";
command.ExecuteNonQuery()
Это просто добавляет отдельный DEFAULT CONSTRAINT
к вашему столу.
Попробуйте добавить GO
между каждым утверждением:
Dim strCommnad As String = "CREATE DEFAULT [dbo].[DOMAIN_XLibPKID_D] AS (0);" + Environment.NewLine +
"GO; CREATE TYPE [dbo].[XLibPKID] FROM BIGINT NOT NULL;" + Environment.NewLine +
"GO; EXEC sp_bindefault 'DOMAIN_XLibPKID_D', 'XLibPKID';"