Вы можете создать обратный словарь:
revdict = dict((v,k) for k,v in ref.items())
, затем найдите то, что вы хотите:
assert revdict["def"] == "abc"
Обратите внимание, что это не будет работать, если два ключа отображаются на одно и то же значение.
Замок означает, что хранимая процедура была зашифрована с помощью подсказки WITH ENCRYPTION
(дополнительную информацию см. В CREATE PROC
в BOL).
Это не означает, что это хранимая процедура CLR.
Вот статья в журнале SQL Server Magazine о том, как расшифровать объекты, зашифрованные с помощью подсказки WITH ENCRYPTION
.
Существуют также сторонние инструменты, которые делают то же самое - собственное шифрование sproc не предназначено для обеспечения надежного уровня шифрования.
Изменить: Вот еще один, но я не знаю » Я тестировал его на SQL Server 2005 или новее.
Помимо зашифрованного, это также означает, что у вас нет прав ПРОСМОТР ОПРЕДЕЛЕНИЯ
, поэтому вы не можете видеть код хранимой процедуры.
Замок просто означает, что они зашифрованы - не имеет ничего общего с тем, что они являются CLR. Невозможно просмотреть исходный код, независимо от того, является ли он CLR / T-SQL.
Это хранимые процедуры, созданные с помощью параметра WITH ENCRYPTION
(дополнительную информацию см. В документации MSDN по CREATE PROCEDURE ). Все это означает, что вы не можете видеть код для хранимой процедуры.
Можно расшифровать такие хранимые процедуры, но поскольку идея шифрования заключается в том, что вы не можете сделать это, это непросто - определенно не делайте этого на производстве серверы!