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

Откуда:
Сообщений: 27
Только начал изучать SQL, поэтому появилось несколько вопросов:

Что означают следующие конструкции?

with(NOLOCK)

	select SessionID
	into #T3
- это копирование данных во временную таблицу? Её нужно создавать или она сама создастся и самоудалится на лету (в какой момент происходит самоудаление если это так?)?

автор
if @@trancount=0 and @@options&2=0
- что означают эти параметры и двойной знак собаки перед ними? =)

автор
OPTION (ROBUST PLAN)
- что делает такая конструкция?

вроде все... буду очень благодарен ответу, если кто знает про что-то из вышеперечисленного...
7 окт 09, 15:48    [7754200]     Ответить | Цитировать Сообщить модератору
 Re: Несколько простых вопросов...  [new]
Supra93
Member

Откуда:
Сообщений: 8174
VetalY
Только начал изучать SQL, поэтому появилось несколько вопросов

Для начала изучите Что такое BOL
7 окт 09, 15:52    [7754225]     Ответить | Цитировать Сообщить модератору
 Re: Несколько простых вопросов...  [new]
iljy
Member

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

а вы не пробовали обратиться к документации? Там все эти конструкции описаны очень подробно и даже на русском.
7 окт 09, 15:53    [7754233]     Ответить | Цитировать Сообщить модератору
 Re: Несколько простых вопросов...  [new]
pkarklin
Member

Откуда: Москва (Муром)
Сообщений: 74927
автор
буду очень благодарен ответу, если кто знает про что-то из вышеперечисленного...


Не "кто", а "что". И это "что" называется BOL - Books Online, документация по серверу, идущая в комплекте установки или находящаяся в msdn.
7 окт 09, 15:54    [7754241]     Ответить | Цитировать Сообщить модератору
 Re: Несколько простых вопросов...  [new]
Кудряшка
Member

Откуда: Сидней
Сообщений: 2219
В общем, если по простому, надо нажать на help->index и искать, что интересует, например NOLOCK :)
7 окт 09, 15:56    [7754257]     Ответить | Цитировать Сообщить модератору
 Re: Несколько простых вопросов...  [new]
vino
Member

Откуда:
Сообщений: 1191
VetalY
Только начал изучать ...
Обычно, начинают с простых основ и примеров, а остальное - смотри в BOL
Коротко:
VetalY
with(NOLOCK)
принуждение к "грязному" чтению - без учета транзакционных блокировок, т.е. в выборке из изменяемых в этот момент таблиц могут присутствовать фантомы
VetalY
	select SessionID
	into #T3

это копирование данных во новую временную таблицу текущей сессии. Если такая таблица уже есть, то будет ошибка, т.е. создавать ее отдельно не надо и она сама удалится при закрытии сессии
7 окт 09, 16:07    [7754343]     Ответить | Цитировать Сообщить модератору
 Re: Несколько простых вопросов...  [new]
baracs
Member

Откуда: Москва
Сообщений: 7198
VetalY
Что означают следующие конструкции?
with(NOLOCK)

Смотреть BOL по ключевому слову HINTS.

VetalY
select SessionID into #T3
- это копирование данных во временную таблицу? Её нужно создавать или она сама создастся и самоудалится на лету (в какой момент происходит самоудаление если это так?)?

Да.
Инструкция
SELECT INTO
ее создаст. Но можно это сделать самому.
Временная таблица живет пока открыто соединение, в котором она создана, если пользователь сам ее не удалит.

VetalY
что означают эти параметры и двойной знак собаки перед ними?

Это системные функции

VetalY
OPTION (ROBUST PLAN) - что делает такая конструкция?

Тоже в "HINTS".
7 окт 09, 16:12    [7754379]     Ответить | Цитировать Сообщить модератору
 Re: Несколько простых вопросов...  [new]
iap
Member

Откуда: Москва
Сообщений: 46975
baracs
with(NOLOCK)
Смотреть BOL по ключевому слову HINTS.

VetalY
OPTION (ROBUST PLAN) - что делает такая конструкция?

Тоже в "HINTS".
(NOLOCK) - это TABLE HINT, а OPTION() - это QUERY HINTs.
По крайней мере в BOL так называются.
Есть ещё JOIN HINTs
7 окт 09, 16:50    [7754615]     Ответить | Цитировать Сообщить модератору
 Re: Несколько простых вопросов...  [new]
VetalY
Member

Откуда:
Сообщений: 27
спасибо, прояснили ситуацию для начала... Пытаюсь теперь написать хранимку:

SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO

ALTER PROCEDURE [dbo].[my_proc]
	@Login VARCHAR(100) OUTPUT
	/*@Password VARCHAR(100) OUTPUT*/
AS
BEGIN

	SET NOCOUNT ON;

    SELECT @Login=Login FROM dbo.Logins /*WHERE Login = @Login AND Password = @Password*/
END
GO

DECLARE @Login VARCHAR(100) 
EXEC my_proc @Login OUTPUT
SELECT @Login

Мне нужно чтобы вернулся набор значений(логинов), а не одно значение. В какую сторону мне копать?
7 окт 09, 16:56    [7754647]     Ответить | Цитировать Сообщить модератору
 Re: Несколько простых вопросов...  [new]
iap
Member

Откуда: Москва
Сообщений: 46975
VetalY
Мне нужно чтобы вернулся набор значений(логинов), а не одно значение. В какую сторону мне копать?
В сторону выбрасывания скалярных переменных на помойку!
7 окт 09, 17:00    [7754670]     Ответить | Цитировать Сообщить модератору
 Re: Несколько простых вопросов...  [new]
VetalY
Member

Откуда:
Сообщений: 27
курсоры?
7 окт 09, 17:03    [7754687]     Ответить | Цитировать Сообщить модератору
 Re: Несколько простых вопросов...  [new]
проходящий.
Guest
VetalY
курсоры?
Это по какой такой логике-то?
7 окт 09, 17:04    [7754696]     Ответить | Цитировать Сообщить модератору
 Re: Несколько простых вопросов...  [new]
Ken@t
Member

Откуда: 大地
Сообщений: 3264
VetalY,

Начать читать документацию. слово курсор- забудте.
7 окт 09, 17:05    [7754709]     Ответить | Цитировать Сообщить модератору
 Re: Несколько простых вопросов...  [new]
iljy
Member

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

все-таки копать вам нужно в сторону учебника. Зачем вам курсоры когда можно вернуть непосредственно результат запроса?
7 окт 09, 17:06    [7754711]     Ответить | Цитировать Сообщить модератору
 Re: Несколько простых вопросов...  [new]
VetalY
Member

Откуда:
Сообщений: 27
Да я хз пока) мне нужно чтобы хранимка вернула набор значений, вот я и думаю как бы это так организовать =)
7 окт 09, 17:06    [7754713]     Ответить | Цитировать Сообщить модератору
 Re: Несколько простых вопросов...  [new]
проходящий.
Guest
VetalY
Да я хз пока) мне нужно чтобы хранимка вернула набор значений,
Ну так и возвращайте, какого лешего тут перменную приплели?
7 окт 09, 17:08    [7754730]     Ответить | Цитировать Сообщить модератору
 Re: Несколько простых вопросов...  [new]
VetalY
Member

Откуда:
Сообщений: 27
return SELECT Login From Logins
?

Если не сложно напишите код...
7 окт 09, 17:14    [7754779]     Ответить | Цитировать Сообщить модератору
 Re: Несколько простых вопросов...  [new]
проходящий.
Guest
VetalY
return SELECT Login From Logins
?

Если не сложно напишите код...
Да просто уберите @Login= из Вашего же кода процедуры.
7 окт 09, 17:16    [7754797]     Ответить | Цитировать Сообщить модератору
 Re: Несколько простых вопросов...  [new]
VetalY
Member

Откуда:
Сообщений: 27
ОК, спасиб, тупил по страшному!!!...
7 окт 09, 17:19    [7754806]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить