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

Откуда:
Сообщений: 28
Есть переменная к примеру

declare @KPIID int
мне нужно предоставить ей значение, но это значение

set @KPIID=id, где id это значение из другой таблицы к примеру
(
select id
from ks.dbo.hh2
where ktulhu=1102)

как это сделать? как можно в параметр @KPIID впихнуть значение из другой таблицы не создавая при этом никаких других функций и хранимых процедур. И еще важно условие данные из таблицы ks.dbo.hh2 по ключу kpiname должны быть приджоинины к таблице примером #tmp чтобы параметр передавался каждому по имени.
29 апр 14, 13:04    [15951574]     Ответить | Цитировать Сообщить модератору
 Re: KPIID  [new]
Konst_One
Member

Откуда:
Сообщений: 11621
что-то туманно объясняете, давайте пример кода, что вы делаете и что не получается
29 апр 14, 13:05    [15951582]     Ответить | Цитировать Сообщить модератору
 Re: KPIID  [new]
iap
Member

Откуда: Москва
Сообщений: 47142
gosurusya,

надо стереть текст от слова "id" до слова "примеру" включительно.
29 апр 14, 13:07    [15951597]     Ответить | Цитировать Сообщить модератору
 Re: KPIID  [new]
gosurusya
Member

Откуда:
Сообщений: 28
Konst_One,
не вопрос вот.

DECLARE @cmd NVARCHAR(255)
--DECLARE @KPIID INT


IF (DAY(GETDATE()) = 1) OR (DATENAME(weekday, GETDATE())) = 'Tuesday'
BEGIN
-- список процедур
CREATE TABLE #tmp (prname NVARCHAR(255), isExec BIT)
INSERT INTO #tmp (prname, isExec)
SELECT RTRIM(o.name), 0
FROM sys.all_objects o
INNER JOIN sys.schemas u
ON u.schema_id = o.schema_id
INNER JOIN sys.all_sql_modules c
ON c.object_id = o.object_id



-- выполнение по очереди
WHILE EXISTS (SELECT 1 FROM #tmp t WHERE t.isExec = 0)
BEGIN
SELECT TOP 1 @cmd = t.prname FROM #tmp t WHERE t.isExec = 0

EXEC(@cmd)

UPDATE #tmp
SET isExec = 1
WHERE prname = @cmd
END

DROP TABLE #tmp
END
ELSE
SELECT 'Не понедельник сегодня и не 1-ое число'

Здесь я выбираю название хранимых процедур с названием. Есть табличка ks.dbo.hh2 в которой есть ключи ktulhu который должен равняться 1102 и ключ id который равняется параметру хранимых процедур @KPIId. Вопрос как это сделать? и еще в табличку #tmp должны приджоиниваться данные из таблички ks.dbo.hh2 по ключу kpiname. А в табличке
#tmp это является названием.
29 апр 14, 13:10    [15951629]     Ответить | Цитировать Сообщить модератору
 Re: KPIID  [new]
iap
Member

Откуда: Москва
Сообщений: 47142
gosurusya,

если t.prname - имя процедуры, то надо не
EXEC(@cmd)
, а
EXEC @cmd
29 апр 14, 13:13    [15951672]     Ответить | Цитировать Сообщить модератору
 Re: KPIID  [new]
iap
Member

Откуда: Москва
Сообщений: 47142
gosurusya
IF (DAY(GETDATE()) = 1) OR (DATENAME(weekday, GETDATE())) = 'Tuesday'

gosurusya
SELECT 'Не понедельник сегодня и не 1-ое число'
Tuesday - это понедельник, да?
29 апр 14, 13:15    [15951688]     Ответить | Цитировать Сообщить модератору
 Re: KPIID  [new]
igr_ok
Member

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

select @KPIID=id
from ks.dbo.hh2
where ktulhu=1102
29 апр 14, 13:16    [15951694]     Ответить | Цитировать Сообщить модератору
 Re: KPIID  [new]
Konst_One
Member

Откуда:
Сообщений: 11621
жуть какая-то динамическая. вы бы для начала все свои скрипты вывели через PRINT
и посмотрели, что они делают и как выполянются, а уже потом накручивали бы динамику
29 апр 14, 13:40    [15951876]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить