У меня есть таблица со структурой, какПереопределить максимальную скорость SQL Server?
name properties
x thing1, thing2, thing3
y otherthing1, otherthing2, otherthing3
, и я хотел бы сопоставить этот один-ко-многим, как
name properties
x thing1
x thing2
x thing3
В этом следующее решение у меня работает, но работает против опция Maxrecursion в SQL Server
;with tmp(brandName, drugList, genericName) as (
select brandName, LEFT(genericName, CHARINDEX(',',genericName+',')-1),
STUFF(genericName, 1, CHARINDEX(',',genericName+','), '')
from eeeee
where LEN(genericName) - LEN(replace(genericName,',','')) < 100
union all
select brandName, LEFT(genericName, CHARINDEX(',',genericName+',')-1),
STUFF(genericName, 1, CHARINDEX(',',genericName+','), '')
from tmp
where genericName > ''
)
select brandName, drugList
from tmp
order by brandName
где положение является то, что пусть это за прогон запроса, потому что есть некоторые строки в многозначной колонке т шляпа имеет более 100 предметов в списке. Есть ли способ скрыться и переопределить максимальный предел SQL Server при рекурсии? Или будет лучше всего пойти дальше и разделить столбцы с более чем 100 значениями на два, а затем сделать рекурсию?
использования а [запрос подсказка] (http://msdn.microsoft.com/en-gb /library/ms181714.aspx) в конце, например 'OPTION (MAXRECURSION 0)' –
Я пробовал вариант (maxrecursion 100), очевидно, я не понимал, как это реализовать. +1 – wootscootinboogie
'(MAXRECURSION 100)' является значением по умолчанию. '(MAXRECURSION 0)' переопределяет максимальную рекурсию без ограничений. В MSDN: 'Определяет максимальное количество рекурсий, разрешенных для этого запроса. число представляет собой неотрицательное целое число от 0 до 32767. Если указано 0, предел не применяется. Если этот параметр не указан, предел по умолчанию для сервера равен 100.' –