Попробуйте это,
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 ;
}
Это может помочь вам ....
Это правильный ответ:
ALTER TABLE MEN DROP COLUMN Lname
Но ... если на COLUMN
существует CONSTRAINT
, вы сначала должны DROP
CONSTRAINT
, тогда вы иметь возможность DROP
COLUMN
. Чтобы сбросить CONSTRAINT
, запустите:
ALTER TABLE MEN DROP CONSTRAINT {constraint_name_on_column_Lname}
Чтобы добавить столбцы в существующую таблицу:
ALTER TABLE table_name
ADD
column_name DATATYPE NULL
Чтобы удалить столбцы в существующей таблице:
ALTER TABLE table_name
DROP COLUMN column_name
Ваш пример прост и не требует каких-либо дополнительных изменений таблицы, но, вообще говоря, это не так тривиально.
Если этот столбец ссылается на другие таблицы, тогда вам нужно выяснить, что делать с другие таблицы / столбцы. Один из вариантов - удалить внешние ключи и сохранить ссылочные данные в других таблицах.
Другой вариант - найти все ссылочные столбцы и удалить их, если они больше не нужны.
В таких случаях реальной проблемой является поиск всех внешних ключей. Вы можете сделать это, запросив системные таблицы или использовать сторонние инструменты, такие как ApexSQL Search (бесплатно) или Red Gate Tracker зависимостей (премиум, но больше функций). Здесь весь поток на внешних ключах здесь
Простым ответом на это является использование этого:
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;
Есть некоторые предпосылки для удаления столбцов. Столбцы не могут быть:
Если какое-либо из приведенных выше значений истинно, вам нужно сначала отбросить эти ассоциации.
Кроме того, это следует отметить, что удаление столбца не возвращает пространство с жесткого диска до тех пор, пока кластеризованный индекс таблицы не будет восстановлен. Как правило, это хорошая идея, чтобы следовать приведенному выше примеру команды перестройки таблицы следующим образом:
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;
Но будьте осторожны, есть окно для потери данных вставленных строк здесь между первым выбором и последним переименованием команда.
Общий:
ALTER TABLE table_name DROP COLUMN column_name;
В вашем случае:
ALTER TABLE MEN DROP COLUMN Lname;
В SQL Server 2016 вы можете использовать новые инструкции DIE.
ALTER TABLE Table_name DROP COLUMN IF EXISTS Column_name
Вышеупомянутый запрос повторно запускает его drops
в столбце, только если он exists
в таблице иначе не будет вызывать ошибку.
Вместо использования больших IF
оберток для проверки существования column
перед его удалением вы можете просто запустить вышеуказанный оператор DDL
Вопрос в том, можете ли вы удалять только столбец из переходящей таблицы ;-)
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
Это также можно сделать с помощью графического интерфейса SSMS. Самое приятное в этом методе - это предупреждение о том, есть ли какие-либо отношения в этом столбце, а также может автоматически их удалить.
Как я уже говорил, если есть какие-либо отношения, которые также необходимо будет удалить, он попросит вас в этот момент, если вы хотите удалить эти также. Вам, вероятно, понадобится сделать это, чтобы удалить столбец.