Я пытаюсь выполнить команду CREATE TABLE, что приводит к следующему исключению SQL:
Неверное имя объекта 'UserLock'.
Утверждение выглядит так:
USE [db]
GO
CREATE TABLE [db].[dbo].[UserLock] (
[Login] [varchar](150) NOT NULL,
[ExpirationDate] [datetime] NOT NULL,
CONSTRAINT [PK_UserLock] PRIMARY KEY CLUSTERED
([Login] ASC)
WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY]
) ON [PRIMARY]
Странно то, что я могу успешно выполнить запрос в Microsoft SQL Management Studio с тем же пользователем, но не в моем веб-приложении .NET, написанном на C #. Я не использую никаких фреймворков и подключаюсь к базе данных с помощью предоставленных классов из System.Data.SqlClient. Все остальные запросы к базе данных работают в приложении. База данных - Microsoft SQL Express 2005.
- Правка ---
Вот так выглядит мой код выполнения:
string createString = "CREATE TABLE [" + catalog + "].[dbo].[UserLock]("
+ " [Login] [varchar](150) NOT NULL,"
+ " [ExpirationDate] [datetime] NOT NULL,"
+ " CONSTRAINT [PK_UserLock] PRIMARY KEY CLUSTERED "
+ " ([Login] ASC)"
+ " WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY]"
+ ") ON [PRIMARY]";
SqlCommand createCommand = connection.CreateCommand();
createCommand.Connection = connection;
createCommand.CommandText = createString;
selectCommand.ExecuteNonQuery();
Я ловлю исключение в другом методе. Само соединение SQL устанавливается другим способом. Это стандарт SqlConnection connection = new SqlConnection(connectionString);