Имя пользователя:
Пароль:
 

Показать сообщение отдельно

Пользователь


Сообщения: 101
Благодарности: 0

Профиль | Отправить PM | Цитировать


Есть две таблицы, например – Table1 и Table2.

Table1
nID NAME1 NAME2 NAME3 NAME4 NAME5 NAME6
1
2
3



Из Table1 надо скопировать поля в table2. Все поля принадлежат одной строке (н-р nID=2). Условие – передавать поля NAME1 и NAME5 через переменные, остальные как угодно, можно также через переменные. Обратиться к строчке могу только по ID (WHERE nID = 2), значение полей неизвестно.

Table2
nID NAME1 NAME2 NAME3 NAME4 NAME5 NAME6
1
2
3
4
5
6


DECLARE @S1 varchar(200)
DECLARE @S2 tinyint
DECLARE @S3 tinyint
DECLARE @S4 text
DECLARE @S5 varchar(300)
DECLARE @S6 tinyint

SELECT @S1 = NAME1
FROM Table1
WHERE nID = 2

SELECT @S2 = NAME2
FROM Table2
WHERE nID = 2

и т.д.

INSERT INTO Table2
(NAME1, NAME2, NAME3, NAME4, NAME5, NAME6)
VALUES (@S1, @S2, @S3, @S4, @S5, @S6)

Не проходит. Натыкаюсь на:
Server: Msg 2739, Level 16, State 1, Line 1
The text, ntext, and image data types are invalid for local variables.


Хорошо. Тогда делаю через переменные только NAME1 и NAME5. Получилось. В Table2 появилась строка nID=7, в которой 2 поля заполнены нужными значениями из Table1. Теперь в эту же строчку (которая nID=7) надо передать оставшиеся значения полей из Table1 nID=2. Как это сделать?

Отправлено: 16:02, 17-10-2008 | #6