Что лучший способ состоит в том, чтобы присвоить возвращенному значению сохраненного proc к переменной в SQL?

Лучший способ сделать это - поиграть с ростом и непрозрачностью. Но вы не можете установить высоту для элементов таблицы (tr / td)

, поэтому вот пример того, как сделать это только с CSS

#expand {
 /* hide the checkbox */
 display: none
}

label {
  /* style as a button (you can't use button inside label with for attribute) */
  padding: 2px 5px;
  border: 1px solid rgba(0,0,0,.2);
  border-radius: 5px;
  font-size: .7rem;
  cursor: pointer;
}

table {
  border-spacing: 0;
  border-collapse: collapse;
}

table tr:nth-child(n+4)>td {
  padding: 0;
}

table tr:nth-child(n+4)>td>div {
  opacity: 0;
  max-height: 0;
  transition: all 250ms ease-in;
}

#expand:checked + table tr:nth-child(n+4)>td {
  padding: 1px;
  /* default */
}

#expand:checked + table tr:nth-child(n+4)>td>div {
  opacity: 1;
  /* try to use something just slightly above the true height */
  max-height: 20px;
  overflow: hidden;
  transition-timing-function: ease-out;
}
[ 111]

6
задан ApplePieIsGood 20 February 2009 в 18:23
поделиться

4 ответа

Если Ваше получение единственной возвращаемой переменной затем да, это - innefficent, который можно сделать:

declare @localVariable int
exec @localVariable =GetMyValue
select @localVariable 
13
ответ дан 8 December 2019 в 13:49
поделиться

Посмотрите, как обменяться данными между хранимыми процедурами
Некоторыми причинами 'должностное лицо @localVariable =GetMyValue ' не работает на меня (MS SQL 2005), это, всегда возвращают 0 значений (У них есть та же проблема).

Мое мнение:
если можно изменить хранимую процедуру, добавьте выходной параметр.
еще, если можно удалить процедуру, перепишите ее как функцию.
еще используйте табличную переменную, как Вы делаете.

3
ответ дан 8 December 2019 в 13:49
поделиться

Этот proc возвращает набор строк 1 строки и 1 столбец или никакой набор строк вообще, и Вы просто хотите получить код возврата?

Если Вы хотите просто код возврата, затем используют метод Josh's, иначе используют Выходной параметр, так как это будет намного быстрее, чем, что Вы делаете теперь

Для Объяснения, что я имею в виду, выполняет этот код

use tempdb
go

create proc GetMyValue
as
select 1
go


create table #temp (id int)
declare @localVariable int

insert #temp
exec @localVariable =GetMyValue
select @localVariable,* from #temp
1
ответ дан 8 December 2019 в 13:49
поделиться

Попробуйте следующее:

create proc AvilableSeats
as
declare @v1 int,@v2 int
exec @v1= determinPath_Capacity 1,'Sat-Tue',32
exec @v2=Student_fGroup '6/12/2009'
select @v1-@v2
0
ответ дан 8 December 2019 в 13:49
поделиться
Другие вопросы по тегам:

Похожие вопросы: