РЕДАКТИРОВАТЬ: Извините за трату времени каждого, код ниже показывает, что я только что забыл 'C' на PMS_CALC_SCHEDULE, после исправления он отлично работает.
В следующем коде "существовать" следует == 1, если таблица существует в базе данных.Тем не менее, он возвращает 0 для меня, хотя таблица существует в базе данных.Я не уверен, почему это происходит?
Спасибо:
foreach (var row in calcSched)
{
var dif3 = new DataInterfaceFactory(DatabaseTypes.SqlServer, row.DatabaseName, row.ServerName);
using (DataReader dr2 = dif3.GetDataReader())
{
dr2.ExecuteReader("SELECT COUNT(1) AS TABLECOUNT2 FROM INFORMATION_SCHEMA.TABLES WHERE TABLE_SCHEMA = 'dbo' AND TABLE_NAME = 'PMS_CAL_SCHEDULE'");
var exists = Convert.ToInt32(dr2["TABLECOUNT2"]);
CommandExecutor CE = dif3.GetCommandExecutor();
try
{
if (exists == 0)//if table doesn't exist create it
{
string sql = "CREATE TABLE dbo.PMS_CAL_SCHEDULE(CALCULATION_SCHEDULE_UID INT, USER_UID INT, SCHEDULE_DATE DATE, PMS_CALC_STATUS_UID INT, CALCULATION_START_DATE DATE, CALCULATION_END_DATE DATE, STATUS_MESSAGE CHAR(100), PROGRESS CHAR(20)";
CE.ExecuteNonQuery(sql);
}
}
catch (Exception ex)
{
Console.WriteLine("Error: could not create PMS_CALC_SCHEDULE");
}
}
}