Копирование many-to-many (MS SQL 2005)
От: H.P. Baxxter  
Дата: 11.09.07 19:23
Оценка:
У меня с t-sql опыт не большой, в основном, запросы, но пару раз проскакивали простенькие триггеры, хранимки и функции (как правило, элементарный уровень). По этому даже не представляю как решить следующую задачу:
Есть три таблицы Пользователь, Группа и таблица связка. Необходимо скопировать всех пользователей удовлетворяющих определённому критерию (например, возраст > 25 лет) и изменить у скопированных несколько полей на одинаковое значение (например, IsActive = false), а также нужно скопировать всю информацию по ним из таблицы связки. Подскажите, пожалуйста, какие есть решения?
Re: Копирование many-to-many (MS SQL 2005)
От: pkarklin  
Дата: 12.09.07 04:32
Оценка:
Здравствуйте, H.P. Baxxter, Вы писали:

HPB>У меня с t-sql опыт не большой, в основном, запросы, но пару раз проскакивали простенькие триггеры, хранимки и функции (как правило, элементарный уровень). По этому даже не представляю как решить следующую задачу:

HPB>Есть три таблицы Пользователь, Группа и таблица связка. Необходимо скопировать всех пользователей удовлетворяющих определённому критерию (например, возраст > 25 лет) и изменить у скопированных несколько полей на одинаковое значение (например, IsActive = false), а также нужно скопировать всю информацию по ним из таблицы связки. Подскажите, пожалуйста, какие есть решения?

Т.е. мы сами должны придумать DDL на таблицы, тестовые данные и что должно получиться в результате?
Re[2]: Копирование many-to-many (MS SQL 2005)
От: H.P. Baxxter  
Дата: 12.09.07 19:02
Оценка:
Здравствуйте, pkarklin, Вы писали:

P>Здравствуйте, H.P. Baxxter, Вы писали:


HPB>>У меня с t-sql опыт не большой, в основном, запросы, но пару раз проскакивали простенькие триггеры, хранимки и функции (как правило, элементарный уровень). По этому даже не представляю как решить следующую задачу:

HPB>>Есть три таблицы Пользователь, Группа и таблица связка. Необходимо скопировать всех пользователей удовлетворяющих определённому критерию (например, возраст > 25 лет) и изменить у скопированных несколько полей на одинаковое значение (например, IsActive = false), а также нужно скопировать всю информацию по ним из таблицы связки. Подскажите, пожалуйста, какие есть решения?

P>Т.е. мы сами должны придумать DDL на таблицы, тестовые данные и что должно получиться в результате?


Ок, извиняюсь.

create table USER
(
ID int identity primary key,
FirstName nvarchar(50) not null,
LastName nvarchar(50) not null,
Year int not null,
IsActive bit not null
)

create table ROLE
(
ID int identity primary key,
Name nvarchar(50) not null
)

create table USER_ROLE
(
ID int identity primary key,
USER_ID int not null,
ROLE_ID int not null
)

Нужно копировать юзеров в туже таблицу, только изменив соответственно ID как минимум, но главное скопировать для каждого юзера информацию из таблицы связки.
Re[3]: Копирование many-to-many (MS SQL 2005)
От: pkarklin  
Дата: 13.09.07 05:20
Оценка:
Здравствуйте, H.P. Baxxter, Вы писали:


HPB>Ок, извиняюсь.


В таблице USER есть альтенативный ключ, позволяющий однознано определить запись не по ID?
Re[4]: Копирование many-to-many (MS SQL 2005)
От: FreddieM  
Дата: 16.09.07 18:57
Оценка:
Здравствуйте, pkarklin, Вы писали:

P>Здравствуйте, H.P. Baxxter, Вы писали:



HPB>>Ок, извиняюсь.


P>В таблице USER есть альтенативный ключ, позволяющий однознано определить запись не по ID?

нет...
Re[5]: Копирование many-to-many (MS SQL 2005)
От: pkarklin  
Дата: 17.09.07 06:56
Оценка:
Здравствуйте, FreddieM, Вы писали:

FM>Здравствуйте, pkarklin, Вы писали:


P>>Здравствуйте, H.P. Baxxter, Вы писали:



HPB>>>Ок, извиняюсь.


P>>В таблице USER есть альтенативный ключ, позволяющий однознано определить запись не по ID?

FM>нет...

Тогда только с помощью курсора.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.