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

Откуда:
Сообщений: 8
Добрый день.
Подскажите, как можно перенести данные перенести данные из одной таблицы в другую с использованием UDF?
Без UDF всё переносится.
    
INSERT INTO DepartmentEmployees (DepartmentName, Employees)
SELECT Name, FirstName + '  ' + LastName
FROM HumanResources.Department join Person.Person ON HumanResources.Department.DepartmentID = Person.BusinessEntityID

Как это можно сделать используя UDF? Ведь в UDF нельзя использовать SELECT, INSERT INTO и т.д.
12 авг 14, 13:46    [16430939]     Ответить | Цитировать Сообщить модератору
 Re: Перенос данных из одной таблицы в другую  [new]
Glory
Member

Откуда:
Сообщений: 104760
BarKerGR
Как это можно сделать используя UDF? Ведь в UDF нельзя использовать SELECT, INSERT INTO и т.д.

Никак. Потому что нельзя означает нельзя.
12 авг 14, 13:49    [16430968]     Ответить | Цитировать Сообщить модератору
 Re: Перенос данных из одной таблицы в другую  [new]
BarKerGR
Member

Откуда:
Сообщений: 8
А если вызывать функцию из внешнего селекта?
12 авг 14, 13:50    [16430975]     Ответить | Цитировать Сообщить модератору
 Re: Перенос данных из одной таблицы в другую  [new]
Glory
Member

Откуда:
Сообщений: 104760
BarKerGR
А если вызывать функцию из внешнего селекта?

Да хоть с орбитальной космической станции.
В хелпе ясно написано, что можно использовать в UDF.
Все остальное - нельзя.
12 авг 14, 13:51    [16430986]     Ответить | Цитировать Сообщить модератору
 Re: Перенос данных из одной таблицы в другую  [new]
_djХомяГ
Guest
А зачем тут функция - замените функцию процедурой
Другой вопрос зачем процедура - чем батч не устраивает
12 авг 14, 13:52    [16430995]     Ответить | Цитировать Сообщить модератору
 Re: Перенос данных из одной таблицы в другую  [new]
BarKerGR
Member

Откуда:
Сообщений: 8
По заданию)
12 авг 14, 13:59    [16431044]     Ответить | Цитировать Сообщить модератору
 Re: Перенос данных из одной таблицы в другую  [new]
Glory
Member

Откуда:
Сообщений: 104760
BarKerGR
По заданию)

Что в задании прямо так и написано "используя только UDF" ?
12 авг 14, 14:01    [16431056]     Ответить | Цитировать Сообщить модератору
 Re: Перенос данных из одной таблицы в другую  [new]
BarKerGR
Member

Откуда:
Сообщений: 8
Да.
В своей базе создать и заполнить таблицу DepartmentEmployees, которая содержит следующие колонки:
1. DepartmentName. Название отдела. Заполняется значениями из таблицы AdventureWorks2008R2.HumanResources.Department, колонка Name.
2. Employees. Список всех работников отдела(фамилия и имя через пробел) через запятую в алфавитном порядке.
Данные брать из таблиц HumanResources.Employee, HumanResources.EmployeeDepartmentHistory, Person.Person базы AdventureWorks2008R2

Задачу решить двумя способами:
1) использовать UDF
2) использовать FOR XML PATH
12 авг 14, 14:02    [16431070]     Ответить | Цитировать Сообщить модератору
 Re: Перенос данных из одной таблицы в другую  [new]
BarKerGR
Member

Откуда:
Сообщений: 8
С xml сделал. А вот с UDF сижу туплю. Вообще немогу понять.
12 авг 14, 14:03    [16431080]     Ответить | Цитировать Сообщить модератору
 Re: Перенос данных из одной таблицы в другую  [new]
Glory
Member

Откуда:
Сообщений: 104760
BarKerGR
А вот с UDF сижу туплю.

"С UDF" и "В UDF" - это разные вещи вобще-то
12 авг 14, 14:05    [16431090]     Ответить | Цитировать Сообщить модератору
 Re: Перенос данных из одной таблицы в другую  [new]
BarKerGR
Member

Откуда:
Сообщений: 8
Я так понимаю что можно с использованием табличной функции всё сделать?
12 авг 14, 14:14    [16431169]     Ответить | Цитировать Сообщить модератору
 Re: Перенос данных из одной таблицы в другую  [new]
Glory
Member

Откуда:
Сообщений: 104760
BarKerGR
Я так понимаю что можно с использованием табличной функции всё сделать?

Разумеется. Если использовать в UDF только разрешенные команды.
12 авг 14, 14:15    [16431178]     Ответить | Цитировать Сообщить модератору
 Re: Перенос данных из одной таблицы в другую  [new]
mrGuest
Guest
BarKerGR,

или табличной
insert into T (<поля>)
select <поля>
from [схема].[функция](<параметры>) -- или без параметров

или скалярной
insert into T (<поля>)
select Department.Name, [схема].[функция](Department.DepartmentID)
from HumanResources.Department
12 авг 14, 14:21    [16431242]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить