Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Microsoft SQL Server Новый топик    Ответить
 CURSOR FOR @sql  [new]
Селектор-Курсораман
Guest
возможно ли создать курсор для переменной или как это обойти?

Ситуация такая - одна функция возвращает select и на его основание нужно создать курсор, чтобы потом все записи, коорые выбираются этим селектом запихнуть в файл или еще куда ...

Спасибо.
18 янв 06, 19:12    [2267188]     Ответить | Цитировать Сообщить модератору
 Re: CURSOR FOR @sql  [new]
RENaissance
Member

Откуда: Муром->Москва
Сообщений: 10895

Если функция возвращает select, то что Вам мешат сделать
declare curCur cursor for
  select * from <ваша_фукция>



Posted via ActualForum NNTP Server 1.3

18 янв 06, 19:23    [2267214]     Ответить | Цитировать Сообщить модератору
 Re: CURSOR FOR @sql  [new]
Селектор-Курсораман
Guest
dbo.GetText:
FUNCTION 
	[dbo].[GetText] (@TableName VARCHAR(100))
RETURNS VARCHAR(8000) 
AS
BEGIN
	DECLARE	@sql VARCHAR(8000)
	DECLARE @insertText VARCHAR(8000)
			

	DECLARE cur CURSOR FOR SELECT * FROM dbo.GetSQLText(@TableName) as t1
	
	OPEN cur
				
		FETCH NEXT FROM cur INTO @insertText

		WHILE @@FETCH_STATUS = 0
		BEGIN
			FETCH NEXT FROM cur INTO @insertText
		END		
		
	CLOSE cur
		
	DEALLOCATE cur

RETURN @insertText

END

выполняем:
declare @sql varchar(8000)
set @sql = dbo.GetText('Actions')

пишет - Invalid object name 'dbo.GetSQLText'.

А если выполнить этот скрипт, подставив вручную то что получится при выполнении dbo.GetSQLText, то все работает замечательно, т.е. получается что не хочет оно так понимать ... или я ...
18 янв 06, 20:51    [2267357]     Ответить | Цитировать Сообщить модератору
 Re: CURSOR FOR @sql  [new]
ChA
Member

Откуда: Москва
Сообщений: 11126
Селектор-Курсораман
А если выполнить этот скрипт, подставив вручную то что получится при выполнении dbo.GetSQLText, то все работает замечательно, т.е. получается что не хочет оно так понимать ... или я ...
Или Вы. Так нельзя. А как можно - написано в BOL. Или опишите задачу, которую решаете(а не как решаете), тогде возможно Вам предложат другие варианты ее решения.
18 янв 06, 22:45    [2267558]     Ответить | Цитировать Сообщить модератору
 Re: CURSOR FOR @sql  [new]
Yaugen
Member

Откуда: Минск
Сообщений: 27
ChA
Или Вы. Так нельзя. А как можно - написано в BOL. Или опишите задачу, которую решаете(а не как решаете), тогде возможно Вам предложат другие варианты ее решения.

Задача - создать скрипт на инсерты данных таблицы.
19 янв 06, 15:19    [2269954]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить