ALTER TABLE tablename
ALTER COLUMN columnname datatype NOT NULL
необходимо будет, очевидно, удостовериться, что столбец не содержит Нулевых значений прежде, чем сделать это.
, Например,
ALTER TABLE orders
ALTER COLUMN customer_id INT NOT NULL
РЕДАКТИРОВАТЬ: Обновлено на основе того, что сказал Марк.
Ну, вы могли увеличить охват, выполнив:
// Helper extension method
public static IEnumerable AsWeakEnumerable(this IEnumerable source)
{
foreach (object o in source)
{
yield return o;
}
}
...
[Test]
public void GetEnumerator_FirstFifteenNumbers_AreCorrect()
{
IEnumerable weak = new FibonacciSequence().AsWeakEnumerable();
var sequence = weak.Cast<int>().Take(15).ToArray();
CollectionAssert.AreEqual(sequence,
new[] {1, 1, 2, 3, 5, 8, 13, 21, 34, 55, 89, 144, 233, 377, 610});
}
Обратите внимание, что weak
объявлен как неуниверсальный IEnumerable
тип ... что означает, что вам нужно вызвать на нем Cast
, чтобы преобразовать каждый возвращенный объект в int
.
I Я не уверен, что беспокоюсь ...
Я бы не стал это тестировать. Я бы попытался отфильтровать метод из инструмента покрытия. Я думаю, что страховое покрытие должно проверять то, что я хочу охватить, а не все. Судя по другим комментариям, вы используете TestDriven.Net. Не знаю, насколько хорошо это фильтрует, но с NCover это возможно. Вы также можете попробовать PartCover.
Вам придется использовать IEnumerable
(не общий); Я отправил ответ, используя Cast
, но он все равно будет обмануть (он проверил нужный тип как особый случай) - вам может понадобиться что-то вроде:
public static int CountUntyped(this IEnumerable source) {
int count = 0;
foreach(object obj in source) { count++; }
return count;
}
IEnumerable<T> source = ...
Assert.AreEqual(typed.Count(), source.CountUntyped());