Теперь все запускается без ошибок.
Проверили Ваш проект с SQL Server 2012 Enterprise. Он работает корректно неограниченное время.
но после нескольких запросов SQL вылетает сервер
Какое количество строк в таблице Currents? Вы выполняете два одинаковых запроса каждую секунду (не дожидаясь обработки предыдущего запроса) и выбираете таблицу целиком. Результаты запросов будут храниться в оперативной памяти (до полной обработки в скриптах) и если таблица большая, то у процесса сервера скады закончится оперативная память (плюс к этому нужно учитывать, что сервер ещё должен каждую секунду передавать всю считанную таблицу "tblMy" клиентам, что ужасно по производительности, если её объем большой).
Ещё раз отмечаем: если Вы планируете получать данные в переменные скады через БД, то такой способ по производительности и тратам ресурсов будет в сотни раз медленнее, чем получение данных в переменные от OPC-сервера (как они приходят в OPC, по оптике или радиомодему - это отдельный вопрос, мы говорим только о самом процессе передачи в скаду и о обработке данных в скаде). При получении данных через OPC используется очень много оптимизаций при которых данные поступившие от OPC попадают в переменные практически мгновенно, с использованием минимального количества оперативной памяти и без использования скриптов.
Для работы через БД, Вам придётся самостоятельно выполнить все оптимизации и учитывать потребление оперативной памяти. Например, выбирать данные из БД частями (а не всю таблицу сразу), обрабатывать их,
после завершения обработки запускать получение новой части данных. Запросы по возможности нужно оптимизировать, выбирать по ключу (например, со столбцом времени, как делает скада при чтении трендов/сообщений). Производительность при этом всегда будет ограничена скриптами.
Рекомендуем для данной задачи поискать специализированное ПО, или системы предназначенные для получения данных через БД (напрямую в переменные).