Я раньше преподавал программирование, и у Вашего брата есть одно основное преимущество перед большинством моих студентов, которых он хочет изучить:)
, Если Вы решаете пойти с C , у друга есть сайт , который имеет вид тех программ из использования от старших поколений, помнят, поскольку основной вводит. Более сложные из них используют ncurses, какой вид инвертирует их использование в качестве учебного пособия несколько, но некоторые из них являются крошечными небольшими вещами, и можно изучить загрузки, не преподаваясь к.
Лично я думаю, Python и Ruby сделали бы большие первые языки.
РЕДАКТИРОВАНИЕ: список распределений работы по программированию новичка казался ночным, мог бы быть, что Вы ищете.
У меня есть та же проблема.
Мое решение - поставить "- С ШИФРОВАНИЕМ" во все мои хранимые процедуры. Эта версия используется разработчиками и хранится в системе управления версиями.
Затем я использую инструмент (например, sed) в своей сборке, чтобы заменить "- WITH ENCRYPTION" на "WITH ENCRYPTION" в файлах, прежде чем я отправлю их для установки .
Для решения на чистом SQL вы можете использовать REPLACE.
С ШИФРОВАНИЕМ
означает, что код процедуры не хранится в таблице SysComments.
Вы можете написать сценарий, который выполняет exec sp_helptext 'MyProcName'
и получает содержимое в a VarChar (MAX) , чтобы он мог легко удерживать многострочные / большие процедуры, а затем изменять процедуру из исходного состояния
CREATE MyProcName AS
SELECT SecretColumns From TopSecretTable
изменить CREATE
на ALTER
и AS
, окруженный пробелом, табуляцией или новой строкой (хорошее место для использования регулярных выражений) до С ШИФРОВАНИЕМ AS
ALTER MyProcName WITH ENCRYPTION AS
SELECT SecretColumns From TopSecretTable
Это скроет весь код для сохраненной процедуры на производственном сервере.
Вы можете поместить это в LOOP
или КУРСОР
(на самом деле не операция на основе набора IMHO) для всех объектов определенного типа и / или соглашения об именах, которые вы хотите encrypt и запускать его каждый раз при развертывании.
Я бы рекомендовал создать sproc в многострочную строковую переменную, а затем вставить или изменить его с помощью sp_executesql
. Единственным неприятным недостатком этого подхода является удвоение одинарных кавычек для строк.
DECLARE @action varchar(max);
SET @action = 'CREATE'; /* or "ALTER" */
DECLARE @withEncryption varchar(max);
SET @withEncryption = ''; /* or "WITH ENCRYPTION" */
DECLARE @sql varchar(max);
SET @sql = @action + ' PROCEDURE dbo.Something'
(
....
) ' + @withEncryption +
' AS
BEGIN
DECLARE @bob varchar(10);
SET @bob = ''Bob'';
....
END;
';
EXEC sp_executesql @statement = @sql;
[Обратите внимание на пробелы вокруг переменных.]
Все мои скрипты используют этот метод, который хорошо работает, если вы привыкнете к удвоению кавычек.
Я также использую командный файл для вызова скрипта, и переменные командной строки режима SQLCMD для выбора различных вариантов поведения, что делает его повторяемым и легким для тестирования.