ALTER TABLE TABLE_NAME DROP COLUMN COLUMN_NAME;
Например,
изменить таблицу Адрес удаленного столбца сотрудника;
Невозможно передать тип Nullable в функцию PInvoke'd без некоторых ... интересных манипуляций с байтами в машинном коде, что почти наверняка не то, что вам нужно.
Если вам нужна возможность передавать значение структуры как NULL в собственный код, объявите перегрузку вашего объявления PInvoke, которое принимает IntPtr вместо структуры, и передайте IntPtr.Zero
[DllImport("setupapi.dll", CharSet = CharSet.Auto, SetLastError = true)]
static extern IntPtr SetupDiGetClassDevs(ref Guid ClassGuid, ref int enumerator, IntPtr hwndParent, uint Flags);
[DllImport("setupapi.dll", CharSet = CharSet.Auto, SetLastError = true)]
static extern IntPtr SetupDiGetClassDevs(ref Guid ClassGuid, IntPtr enumerator, IntPtr hwndParent, uint Flags);
Примечание: я добавил класс ref до первой подписи. Если собственная подпись может принимать значение NULL, скорее всего, это указатель. Следовательно, вы должны передавать типы значений по ссылке.
Теперь вы можете выполнять следующие вызовы
if (enumerator.HasValue) {
SetupDiGetClassDevs(someGuid, ref enumerator.Value, hwnd, flags);
} else {
SetupDiGetClassDevs(someGuid, IntPtr.Zero, hwnd, flags);
}