удалить сервер sql-сервера ограничения / столбца mgmt studio [duplicate]

Попробуйте это,

public View getView(final int position, View convertView,ViewGroup parent) 
{
   if(convertView == null)
   {
        LayoutInflater inflater = getLayoutInflater();
        convertView  = (LinearLayout)inflater.inflate(R.layout.YOUR_LAYOUT, null);
   }

   Button Button1= (Button)  convertView  .findViewById(R.id.BUTTON1_ID);

   Button1.setOnClickListener(new OnClickListener() 
   { 
       @Override
       public void onClick(View v) 
       {
           // Your code that you want to execute on this button click
       }

   });


   return convertView ;
}

Это может помочь вам ....

348
задан Ryan Gates 9 September 2014 в 18:47
поделиться

9 ответов

ALTER TABLE MEN DROP COLUMN Lname
611
ответ дан Taryn 25 August 2018 в 10:09
поделиться

Это правильный ответ:

ALTER TABLE MEN DROP COLUMN Lname

Но ... если на COLUMN существует CONSTRAINT, вы сначала должны DROP CONSTRAINT, тогда вы иметь возможность DROP COLUMN. Чтобы сбросить CONSTRAINT, запустите:

ALTER TABLE MEN DROP CONSTRAINT {constraint_name_on_column_Lname}
43
ответ дан Aaron Lelevier 25 August 2018 в 10:09
поделиться

Чтобы добавить столбцы в существующую таблицу:

ALTER TABLE table_name
 ADD
 column_name DATATYPE NULL  

Чтобы удалить столбцы в существующей таблице:

ALTER TABLE table_name
DROP COLUMN column_name
2
ответ дан Bart 25 August 2018 в 10:09
поделиться

Ваш пример прост и не требует каких-либо дополнительных изменений таблицы, но, вообще говоря, это не так тривиально.

Если этот столбец ссылается на другие таблицы, тогда вам нужно выяснить, что делать с другие таблицы / столбцы. Один из вариантов - удалить внешние ключи и сохранить ссылочные данные в других таблицах.

Другой вариант - найти все ссылочные столбцы и удалить их, если они больше не нужны.

В таких случаях реальной проблемой является поиск всех внешних ключей. Вы можете сделать это, запросив системные таблицы или использовать сторонние инструменты, такие как ApexSQL Search (бесплатно) или Red Gate Tracker зависимостей (премиум, но больше функций). Здесь весь поток на внешних ключах здесь

71
ответ дан Community 25 August 2018 в 10:09
поделиться

Простым ответом на это является использование этого:

ALTER TABLE MEN DROP COLUMN Lname;

Более одного столбца можно указать следующим образом:

ALTER TABLE MEN DROP COLUMN Lname, secondcol, thirdcol;

С SQL Server 2016 это также возможно только удалить столбец, если он существует. Это останавливает вас при получении ошибки за то, что вам, вероятно, не важно.

ALTER TABLE MEN DROP COLUMN IF EXISTS Lname;

Есть некоторые предпосылки для удаления столбцов. Столбцы не могут быть:

  • Используются индексом
  • Используются ограничениями CHECK, FOREIGN KEY, UNIQUE или PRIMARY KEY
  • Связанные с DEFAULT
  • Привязано к правилу

Если какое-либо из приведенных выше значений истинно, вам нужно сначала отбросить эти ассоциации.

Кроме того, это следует отметить, что удаление столбца не возвращает пространство с жесткого диска до тех пор, пока кластеризованный индекс таблицы не будет восстановлен. Как правило, это хорошая идея, чтобы следовать приведенному выше примеру команды перестройки таблицы следующим образом:

ALTER TABLE MEN REBUILD;

Наконец, как утверждают некоторые, это может быть медленным и, вероятно, заблокирует таблицу на время. Можно создать новую таблицу с нужной структурой, а затем переименовать следующим образом:

SELECT 
   Fname 
   -- Note LName the column not wanted is not selected
INTO 
   new_MEN
FROM
   MEN;

EXEC sp_rename 'MEN', 'old_MEN';
EXEC sp_rename 'new_MEN', 'MEN';

DROP TABLE old_MEN;

Но будьте осторожны, есть окно для потери данных вставленных строк здесь между первым выбором и последним переименованием команда.

1
ответ дан Martin Brown 25 August 2018 в 10:09
поделиться

Общий:

ALTER TABLE table_name DROP COLUMN column_name;

В вашем случае:

ALTER TABLE MEN DROP COLUMN Lname;
145
ответ дан nachtigall 25 August 2018 в 10:09
поделиться

В SQL Server 2016 вы можете использовать новые инструкции DIE.

ALTER TABLE Table_name DROP COLUMN IF EXISTS Column_name

Вышеупомянутый запрос повторно запускает его drops в столбце, только если он exists в таблице иначе не будет вызывать ошибку.

Вместо использования больших IF оберток для проверки существования column перед его удалением вы можете просто запустить вышеуказанный оператор DDL

14
ответ дан Pரதீப் 25 August 2018 в 10:09
поделиться

Вопрос в том, можете ли вы удалять только столбец из переходящей таблицы ;-)

BEGIN TRANSACTION

IF exists (SELECT * FROM  sys.columns c 
INNER JOIN  sys.objects t ON (c.[object_id] = t.[object_id])
WHERE t.[object_id] = OBJECT_ID(N'[dbo].[MyTable]')
AND c.[name] = 'ColumnName')
    BEGIN TRY
        ALTER TABLE [dbo].[MyTable] DROP COLUMN ColumnName
    END TRY
    BEGIN CATCH
        print 'FAILED!'
    END CATCH
ELSE
    BEGIN 
        SELECT ERROR_NUMBER() AS ErrorNumber;
        print 'NO TABLE OR COLUMN FOUND !'
    END 

COMMIT  
5
ответ дан Sir Crispalot 25 August 2018 в 10:09
поделиться

Это также можно сделать с помощью графического интерфейса SSMS. Самое приятное в этом методе - это предупреждение о том, есть ли какие-либо отношения в этом столбце, а также может автоматически их удалить.

  1. Поместить таблицу в представление дизайна (щелкните правой кнопкой мыши на таблице) :

  1. Щелкните правой кнопкой мыши по столбцу в представлении «Дизайн» таблицы и нажмите «Удалить столбец»

Как я уже говорил, если есть какие-либо отношения, которые также необходимо будет удалить, он попросит вас в этот момент, если вы хотите удалить эти также. Вам, вероятно, понадобится сделать это, чтобы удалить столбец.

2
ответ дан Tony L. 25 August 2018 в 10:09
поделиться
Другие вопросы по тегам:

Похожие вопросы: