Что делает “%%, DatabaseEx” делают в TSQL?

Вы ищете что-то нестандартное или алгоритмические идеи о том, как реализовать это самостоятельно? Я могу помочь вам с последним.

То, что вы хотите сделать, называется сжатие вершин, которые имеют ровно 2 соседей, то есть имеют степень 2.

Для реализации этого сделайте следующее:

while exists vertex v with degree 2:
    - remove v and the 2 outgoing edges
    - add a new edge between the neighbours of v
    - the weight of the new edge is the sum of the weights of the deleted edge

То есть, если у вас есть следующая часть графика: u ---2--- v ---5--- w и применить сжатие, вы получите u ---7--- w. [ 1110]

Простое итеративное выполнение до тех пор, пока не останется степень вершины 2, преобразует граф на первом изображении в граф на втором.

Точные детали реализации, конечно, будут зависеть от того, какую структуру данных вы используете для представления своего графа в Python (или любого другого языка, который используется).

7
задан dance2die 29 April 2009 в 13:04
поделиться

3 ответа

Я думаю, что лучший ответ здесь заключается в том, что он не документирован и не поддерживается, поэтому не полагайтесь на него. Хотя интересно знать, как работает SQL Server внутри, все, что вы делаете с этими знаниями, может сломаться в будущем исправлении, пакете обновления или выпуске.

7
ответ дан 6 December 2019 в 23:13
поделиться
-- Note: database @dbname may not exist anymore
-- Change compatibility level
-- If invoke gets error, exception will abort this proc.
EXEC %%DatabaseEx(Name = @dbname).SetCompatibility(Level = @input_cmptlevel)

похоже на способ обращения к переменной базе данных как к объекту и внесения изменений в конфигурацию

2
ответ дан 6 December 2019 в 23:13
поделиться

Интересная находка.

Системные SP также ссылаются на %% Object, %% Relation, %% ColumnEx, %% LinkedServer, %% Owner, %% CurrentDatabase (), %% ErrorMessage , %% Module, %% DatabaseRef, %% LocalLogin, %% Alias, %% ServerConfiguration, %% IndexOrStats, %% ScalarType (и т. Д.)

Моя интерпретация заключается в том, что %% () получает какой-то (COM? ) объект на основе критериев фильтра с последующим вызовом метода.

2
ответ дан 6 December 2019 в 23:13
поделиться
Другие вопросы по тегам:

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