Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Microsoft SQL Server Новый топик    Ответить
 Помогите написать запрос  [new]
Павел USA
Guest
Есть две таблицы A и B


Таблица B это архивная таблица,таблица A это рабочая и она постоянно меняется.
В неё добавляют постоянно новые колонки (разработка идет).

Нужно периодически в таблицу B скидывать данные из таблицы A.

Как на автомате добавить новые колонки в таблицу В.
24 дек 12, 07:51    [13674858]     Ответить | Цитировать Сообщить модератору
 Re: Помогите написать запрос  [new]
tpg
Member

Откуда: Novosibirsk
Сообщений: 23902
Павел USA
..Как на автомате добавить новые колонки в таблицу В.
Например, написать DDL триггер.
24 дек 12, 08:06    [13674867]     Ответить | Цитировать Сообщить модератору
 Re: Помогите написать запрос  [new]
aleks2
Guest
-- если НЕ менять порядок столбцов и не удалять столбцы
ALTER TABLE B
  RENAME TO old_B;

select * into B fom A;

insert B
select * from old_B;

drop table old_B;
24 дек 12, 08:07    [13674869]     Ответить | Цитировать Сообщить модератору
 Re: Помогите написать запрос  [new]
Павел USA
Guest
aleks2
-- если НЕ менять порядок столбцов и не удалять столбцы
ALTER TABLE B
  RENAME TO old_B;

select * into B fom A;

insert B
select * from old_B;

drop table old_B;


Можно немного по подробней в этом месте

ALTER TABLE B
  RENAME TO old_B;
24 дек 12, 08:20    [13674895]     Ответить | Цитировать Сообщить модератору
 Re: Помогите написать запрос  [new]
aleks2
Guest
sp_rename
24 дек 12, 09:01    [13675030]     Ответить | Цитировать Сообщить модератору
 Re: Помогите написать запрос  [new]
Павел USA
Guest
aleks2
sp_rename


Надо как то запросом сличить наименование таблиц в базе.
Потом если есть разница то создать новые колонки либо их переименовать.

Не хочется на клиенте делать парсирование и динамическую генерацию запросов.
24 дек 12, 09:10    [13675045]     Ответить | Цитировать Сообщить модератору
 Re: Помогите написать запрос  [new]
aleks2
Guest
Павел USA
aleks2
sp_rename


Надо как то запросом сличить наименование таблиц в базе.
Потом если есть разница то создать новые колонки либо их переименовать.

Не хочется на клиенте делать парсирование и динамическую генерацию запросов.


Ну... INFORMATION_SCHEMA.COLUMNS вам в кривые руки.
24 дек 12, 09:28    [13675118]     Ответить | Цитировать Сообщить модератору
 Re: Помогите написать запрос  [new]
Алексей Куренков
Member [заблокирован]

Откуда: Москва
Сообщений: 567
Павел USA,

можно как нибудь из подобного запроса курсор делать и динамическим SQL исполнять...

select
	case when a.TABLE_NAME is null
	then
		'alter table '+a.TABLE_SCHEMA+'.'+a.TABLE_NAME+
		' add '+b.COLUMN_NAME+' '+b.DATA_TYPE+isnull('('+b.CHARACTER_MAXIMUM_LENGTH+')','')
		+isnull('('+b.NUMERIC_PRECISION+','+b.NUMERIC_SCALE+')','')
	else
		'alter table '+a.TABLE_SCHEMA+'.'+a.TABLE_NAME+
		' drop column '+a.COLUMN_NAME+';'
	end
	,*
from	INFORMATION_SCHEMA.columns a
full join
		INFORMATION_SCHEMA.columns b
	on a.TABLE_CATALOG=b.TABLE_CATALOG
	and a.TABLE_SCHEMA=b.TABLE_SCHEMA
	and a.TABLE_NAME = b.TABLE_NAME
where	a.TABLE_NAME = 'SourceTable'
	and	b.TABLE_NAME = 'DestTable'
	and	(
		a.TABLE_NAME is null
	or	b.TABLE_NAME is null
		)
24 дек 12, 13:49    [13676864]     Ответить | Цитировать Сообщить модератору
 Re: Помогите написать запрос  [new]
Саша(р)
Guest
помогите, есть несколько задач. к ним нужно написать по 3 запроса к каждой.
22 янв 13, 13:32    [13808827]     Ответить | Цитировать Сообщить модератору
 Re: Помогите написать запрос  [new]
aleks2
Guest
Саша(р)
помогите, есть несколько задач. к ним нужно написать по 3 запроса к каждой.

Ну и напиши.
22 янв 13, 13:34    [13808849]     Ответить | Цитировать Сообщить модератору
 Re: Помогите написать запрос  [new]
Саша(р)
Guest
рассматривается бд сайта Мой круг. Хранится инф о людях,их знакомых, профессиях и организациях.выдать инф о:1) всех знакомых Иванова И.И,2)местах работы знакомых Петрова П.П.всех знакомых знакомых. Помогите!!!!!!!!!!!!!!!!
22 янв 13, 13:43    [13808983]     Ответить | Цитировать Сообщить модератору
 Re: Помогите написать запрос  [new]
Glory
Member

Откуда:
Сообщений: 104751
Саша(р)
Помогите!!!!!!!!!!!!!!!!

А то двойку поставят ?
22 янв 13, 13:57    [13809107]     Ответить | Цитировать Сообщить модератору
 Re: Помогите написать запрос  [new]
Гость333
Member

Откуда:
Сообщений: 3683
Саша(р)
рассматривается бд сайта Мой круг

Давайте сюда параметры подключения к бд сайта Мой круг, будут вам запросы.
22 янв 13, 14:20    [13809317]     Ответить | Цитировать Сообщить модератору
 Re: Помогите написать запрос  [new]
Gexan
Member

Откуда: Spb
Сообщений: 35
Видать экзамен уже закончился))
22 янв 13, 14:42    [13809577]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить