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

Откуда:
Сообщений: 55
Доброго времени суток !

Перейду сразу к делу:
Мне нужно поместить результат запроса в переменную для того, что бы потом с помощью EXEC я мог ее вызвать.

К примеру:

SET @t = (SELECT.... FROM.... WHERE...)
...
execute @t
14 ноя 13, 11:17    [15126453]     Ответить | Цитировать Сообщить модератору
 Re: Помогите новичку, пожалуйста:)  [new]
Glory
Member

Откуда:
Сообщений: 104751
Изучение синтаксиса лучше всего начинать с чтения хелпа

http://msdn.microsoft.com/en-us/library/ms188332(v=sql.105).aspx
14 ноя 13, 11:21    [15126474]     Ответить | Цитировать Сообщить модератору
 Re: Помогите новичку, пожалуйста:)  [new]
SonyPictures
Member

Откуда:
Сообщений: 55
Glory,

Это я читал, я рассчитывал, что вы мне кодом поможете :( или хотя бы намеком как это выполнить.
14 ноя 13, 11:29    [15126543]     Ответить | Цитировать Сообщить модератору
 Re: Помогите новичку, пожалуйста:)  [new]
Glory
Member

Откуда:
Сообщений: 104751
SonyPictures
Это я читал

Тогда в чем проблема ?

SonyPictures
я рассчитывал, что вы мне кодом поможете

В ссылке в конце есть примеры кода
Один из них так и называется - Using EXECUTE 'tsql_string' with a variable
Вы его тоже "я читал" ?

Сообщение было отредактировано: 14 ноя 13, 11:31
14 ноя 13, 11:30    [15126548]     Ответить | Цитировать Сообщить модератору
 Re: Помогите новичку, пожалуйста:)  [new]
aleks2
Guest
SonyPictures
Доброго времени суток !

Перейду сразу к делу:
Мне нужно поместить результат запроса в переменную для того, что бы потом с помощью EXEC я мог ее вызвать.

К примеру:

SET @t = (SELECT.... FROM.... WHERE...)
...
execute @t


SELECT @t = aField FROM aTable WHERE aID = 1;
execute(@t); 
14 ноя 13, 11:31    [15126560]     Ответить | Цитировать Сообщить модератору
 Re: Помогите новичку, пожалуйста:)  [new]
SonyPictures
Member

Откуда:
Сообщений: 55
Glory,




Glory
SonyPictures
Это я читал

Тогда в чем проблема ?

Проблема в том, что для меня это новое и я пока плохо понимаю логику программы...

SonyPictures
я рассчитывал, что вы мне кодом поможете

В ссылке в конце есть примеры кода


То есть мне надо создать хранимую процедуру в которой будет выполнятся запрос , а потом эту процедуру присвоить переменной ?
14 ноя 13, 11:35    [15126597]     Ответить | Цитировать Сообщить модератору
 Re: Помогите новичку, пожалуйста:)  [new]
Glory
Member

Откуда:
Сообщений: 104751
SonyPictures
То есть мне надо создать хранимую процедуру в которой будет выполнятся запрос , а потом эту процедуру присвоить переменной ?

Надо _прочитать_. А не просмотреть.
14 ноя 13, 11:36    [15126615]     Ответить | Цитировать Сообщить модератору
 Re: Помогите новичку, пожалуйста:)  [new]
SonyPictures
Member

Откуда:
Сообщений: 55
aleks2,

спасибо, а объявлять переменную типа varchar ? или другой какой-то нужен ? :)

ЗЫ.Прости за элементарные вопросы... :(
14 ноя 13, 11:36    [15126618]     Ответить | Цитировать Сообщить модератору
 Re: Помогите новичку, пожалуйста:)  [new]
SonyPictures
Member

Откуда:
Сообщений: 55
Видимо я не совсем так вопрос поставил ...

Результатом запроса будет являтся несколько полей и несколько записей т.е. 8 столбцов и 60+ записей , это можно записать в переменную ? или надо совать во временную таблицу и потом оттуда доставать данные (из ВТ) и вставлять куда надо ?
14 ноя 13, 11:40    [15126656]     Ответить | Цитировать Сообщить модератору
 Re: Помогите новичку, пожалуйста:)  [new]
Glory
Member

Откуда:
Сообщений: 104751
SonyPictures
Результатом запроса будет являтся несколько полей и несколько записей т.е. 8 столбцов и 60+ записей , это можно записать в переменную ?

А вы сам то как думаете ?

SonyPictures
или надо совать во временную таблицу и потом оттуда доставать данные (из ВТ) и вставлять куда надо ?

Зачем "совать во временную таблицу", чтобы потом "совать куда надо" ? Чтобы потом еще раз "совать в таблицу" ?
14 ноя 13, 11:42    [15126676]     Ответить | Цитировать Сообщить модератору
 Re: Помогите новичку, пожалуйста:)  [new]
Гость333
Member

Откуда:
Сообщений: 3683
SonyPictures
Результатом запроса будет являтся несколько полей и несколько записей т.е. 8 столбцов и 60+ записей , это можно записать в переменную ?

Если эта переменная — табличная, то можно.
14 ноя 13, 11:47    [15126718]     Ответить | Цитировать Сообщить модератору
 Re: Помогите новичку, пожалуйста:)  [new]
SonyPictures
Member

Откуда:
Сообщений: 55
Glory,

Вообщем я видимо намудрил ...

Имеется 2 таблицы: таблица1, таблица2.

У меня задание: Выбрать из 1000 записей таблицы1 (к примеру 100, запросом (по условию соотв.)) полученные 100 записей вставить в таблицу2 с их удалением из таблицы1.
14 ноя 13, 11:48    [15126731]     Ответить | Цитировать Сообщить модератору
 Re: Помогите новичку, пожалуйста:)  [new]
Glory
Member

Откуда:
Сообщений: 104751
Теперь вам следуете _изучить_ синтаксис команд INSERT и SELECT
14 ноя 13, 11:49    [15126745]     Ответить | Цитировать Сообщить модератору
 Re: Помогите новичку, пожалуйста:)  [new]
Sergey S
Member

Откуда: Киев
Сообщений: 215
DECLARE @t VarChar(32) = 'SELECT 123 as NNN'
EXEC (@t)
14 ноя 13, 11:54    [15126788]     Ответить | Цитировать Сообщить модератору
 Re: Помогите новичку, пожалуйста:)  [new]
SonyPictures
Member

Откуда:
Сообщений: 55
Glory,

INSERT INTO Table2 SELECT Field1,Field2 FROM Table1 вроде так
14 ноя 13, 11:55    [15126792]     Ответить | Цитировать Сообщить модератору
 Re: Помогите новичку, пожалуйста:)  [new]
Гость333
Member

Откуда:
Сообщений: 3683
SonyPictures
с их удалением из таблицы1.

Удаление данных делается командой DELETE.
14 ноя 13, 11:59    [15126822]     Ответить | Цитировать Сообщить модератору
 Re: Помогите новичку, пожалуйста:)  [new]
Glory
Member

Откуда:
Сообщений: 104751
SonyPictures
Glory,

INSERT INTO Table2 SELECT Field1,Field2 FROM Table1 вроде так

"с их удалением из таблицы1. " - это будет DELETE+OUPUT c INSERT-ом
14 ноя 13, 12:01    [15126837]     Ответить | Цитировать Сообщить модератору
 Re: Помогите новичку, пожалуйста:)  [new]
SonyPictures
Member

Откуда:
Сообщений: 55
Гость333,

То что DELETE я знаю, тоесть одну строку я могу удалить, а вот несколько не знаю как , я же написал, что новичок :)

Я думаю, что DELETE нескольких строк делается так же как и в случае с INSERT ... SELECT ...FROM ?
14 ноя 13, 12:02    [15126860]     Ответить | Цитировать Сообщить модератору
 Re: Помогите новичку, пожалуйста:)  [new]
Glory
Member

Откуда:
Сообщений: 104751
SonyPictures
То что DELETE я знаю, тоесть одну строку я могу удалить

DELETE удаляет столько записей, сколько попадет в выборку
14 ноя 13, 12:05    [15126884]     Ответить | Цитировать Сообщить модератору
 Re: Помогите новичку, пожалуйста:)  [new]
Sergey Sizov
Member

Откуда:
Сообщений: 1578
SonyPictures
Гость333,

То что DELETE я знаю, тоесть одну строку я могу удалить, а вот несколько не знаю как
Очень интересно! Ибо как раз одну строку удалить сложнее, чем все. Вы, случаем, не с XBase ли берете описание работы команды Delete? [/quot], я же написал, что новичок :)

Я думаю, что DELETE нескольких строк делается так же как[/quot]и одной строки.
14 ноя 13, 12:06    [15126888]     Ответить | Цитировать Сообщить модератору
 Re: Помогите новичку, пожалуйста:)  [new]
SonyPictures
Member

Откуда:
Сообщений: 55
Sergey Sizov,

Мне надо удалить не все стркои таблицы, а строки которые соответствуют запросу !
Из 1000 строк удалить 100 к примеру (подходящих к условию)
14 ноя 13, 12:09    [15126904]     Ответить | Цитировать Сообщить модератору
 Re: Помогите новичку, пожалуйста:)  [new]
Glory
Member

Откуда:
Сообщений: 104751
SonyPictures
Мне надо удалить не все стркои таблицы, а строки которые соответствуют запросу !
Из 1000 строк удалить 100 к примеру (подходящих к условию)

И что вам мешает написать эти "подходящих к условию" в тексте запроса DELETE ?
14 ноя 13, 12:15    [15126970]     Ответить | Цитировать Сообщить модератору
 Re: Помогите новичку, пожалуйста:)  [new]
Sergey Sizov
Member

Откуда:
Сообщений: 1578
SonyPictures
Sergey Sizov,

Мне надо удалить не все стркои таблицы, а строки которые соответствуют запросу !
Из 1000 строк удалить 100 к примеру (подходящих к условию)
Ну и в чем проблема то? Если умеете указать одну строку, значит умеете указать и 100 подходящих к условию.
14 ноя 13, 12:16    [15126985]     Ответить | Цитировать Сообщить модератору
 Re: Помогите новичку, пожалуйста:)  [new]
SonyPictures
Member

Откуда:
Сообщений: 55
Glory,

Не могли бы вы простенький пример привести удаления нескольких записей соответствующих результату запроса?
14 ноя 13, 12:17    [15126992]     Ответить | Цитировать Сообщить модератору
 Re: Помогите новичку, пожалуйста:)  [new]
Glory
Member

Откуда:
Сообщений: 104751
SonyPictures
Не могли бы вы простенький пример привести удаления нескольких записей соответствующих результату запроса?

Рассмотреть примеры команды DELETE опять что-то мешает ?
14 ноя 13, 12:18    [15127001]     Ответить | Цитировать Сообщить модератору
Топик располагается на нескольких страницах: [1] 2   вперед  Ctrl      все
Все форумы / Microsoft SQL Server Ответить