Исправление поврежденной базы данных MsSQL

Сегодня столкнулся с проблемой запуска базы данных MsSQL. После выключения электричества к ней нельзя подключаться и выдавался статус Suspect. Решение вопроса: Перевести базу в статус EMERGENCY:EXEC sp_resetstatus ‘yourDBname’;ALTER DATABASE yourDBname SET EMERGENCY Проводим тестирование базы:DBCC checkdb(‘yourDBname’)ALTER DATABASE yourDBname SET SINGLE_USER WITH ROLLBACK IMMEDIATEDBCC CheckDB (‘yourDBname’, REPAIR_ALLOW_DATA_LOSS)ALTER DATABASE yourDBname SET MULTI_USER Источник: https://infostart.ru/1c/articles/59520/    

Read more

Кросс-запросы между базами данных и серверами в MsSQL

В MsSQL есть прекрасная возможность выполнять кросс-запросы между серверами. Пример SQL, работающего между серверами: SELECT DOC_ID, DOC_NO, FIRM_ID, STRQTY FROM [192.168.99.68].[WMS_FS].[dbo].[DOC_TITLES_FRM] T where (SYNC_STATE_ID=0) and (DOC_TYPE_ID=75305) and (DOC_DATE>=DATEADD(month,-1,GETDATE())) and convert(nvarchar(12),DOC_ID) NOT IN (Select DOC_CODE from [dbo].[_get_1C_DOC_ORDERS](DATEADD(month,-1,GETDATE()),GETDATE()) ) ORDER by FIRM_ID Для того, чтоб заработала связь между серверами, необходимо разрешить обращение к другому серверу на сервере-источнике. Вот как это делается: EXEC sp_addlinkedserver @server = N’192.168.99.68′, @srvproduct = N”, @provider = N’SQLNCLI’, @datasrc = N’192.168.99.68′; GO Если нужно удалить связь: EXEC sp_dropserver @server = N’192.168.99.68′GO Внимание: Запросы будут бегать между серверами, если логин и пароль пользователя одинаковы на этих серверах.  

Read more