Quantcast
Channel: SQL.ru: Microsoft SQL Server
Viewing all 7251 articles
Browse latest View live

Microsoft SQL Server 2016 (SP1) (KB3182545) - 13.0.4001.0 (X64) НЕ работает STRING_SPLIT

$
0
0
select * from STRING_SPLIT('a,a', ',')  


Msg 208, Level 16, State 1, Line 12
Invalid object name 'STRING_SPLIT'.

сессия в ms sql server

$
0
0
Подскажите как внести информацию в сессию?

Монитор Активности Актуальный Или предполагаемый

$
0
0
Добрый день!
Сходу не нашел информации - какой план запроса мы видим в разделе "Последние ресурсоемкие запросы" монитора активности - актуальный или предполагаемый?

Задание не отрабатывает.

$
0
0
Добрый день.

MS SQL Standard (64-bit). Есть БД, в ней среди прочих добавлена процедура (цель процедуры - удаление устаревших записей).

При вызове процедуры из SMS - все отрабатывает корректно.
Добавил вызов процедуры в Агента SQL-сервера - ошибок не возникает, но процедура не отрабатывает.

Посоветуйте, пожалуйста, куда копать.

spSOAPMethodCall (МТС коммуникатор)

$
0
0
Добрый день!

Помогите, пожалуйста, разобраться в ошибке.

Необходимо настроить смс-рассылку через "МТС коммуникатор".

есть хранимая процедура позволяющая обращаться к веб сервисам spSOAPMethodCall

взята она от сюда
http://www.sql.ru/forum/actualthread.aspx?bid=1&tid=576338&hl=spsoapmethodcall

вот текст:
ALTER PROCEDURE [dbo].[spSOAPMethodCall] (
	 @@URL		SysName
	,@@Header	XML	= NULL	OUTPUT
	,@@Body		XML	= NULL	OUTPUT
) AS BEGIN
	-- Для установки Proxy воспользуйтесь "proxycfg -u"

	DECLARE	 @OLEObject		Int
		,@HTTPStatus		Int
		,@ErrCode		Int
		,@ErrMethod		SysName
		,@ErrSource		SysName
		,@ErrDescription	SysName
		,@@SOAPAction		SysName
		,@Request		nvarchar(max) 

	;WITH XMLNAMESPACES (
		 'http://www.w3.org/2001/XMLSchema-instance'	AS [xsi]
		,'http://www.w3.org/2001/XMLSchema'		AS [xsd]
		,'http://schemas.xmlsoap.org/soap/envelope/'	AS [soap])
	SELECT	 @@SOAPAction	= @@Body.value('namespace-uri(/*[1])','SysName') + @@Body.value('local-name(/*[1])','SysName')
		,@Request = N'<?xml version="1.0" encoding="utf-8"?>'+Convert(nvarchar(max),(
	SELECT	 @@Header	AS [soap:Header]
		,@@Body		AS [soap:Body]
	FOR	XML Path('soap:Envelope'),Type))

	EXEC @ErrCode = sys.sp_OACreate 'MSXML2.ServerXMLHTTP', @OLEObject OUT
	IF (@ErrCode = 0) BEGIN
		EXEC @ErrCode = sys.sp_OAMethod @OLEObject ,'open'		,NULL ,'POST' ,@@URL ,'false'				IF (@ErrCode != 0) BEGIN SET @ErrMethod = 'open'		GOTO Error END
		EXEC @ErrCode = sys.sp_OAMethod @OLEObject ,'setRequestHeader'	,NULL ,'Content-Type'	,'text/xml; charset=utf-8'	IF (@ErrCode != 0) BEGIN SET @ErrMethod = 'setRequestHeader'	GOTO Error END
		EXEC @ErrCode = sys.sp_OAMethod @OLEObject ,'setRequestHeader'	,NULL ,'SOAPAction'	,@@SOAPAction			IF (@ErrCode != 0) BEGIN SET @ErrMethod = 'setRequestHeader'	GOTO Error END
		EXEC @ErrCode = sys.sp_OAMethod @OLEObject ,'send'		,NULL ,@Request						IF (@ErrCode != 0) BEGIN SET @ErrMethod = 'send'		GOTO Error END

		EXEC @ErrCode = sys.sp_OAGetProperty @OLEObject ,'status' ,@HTTPStatus OUT						IF (@ErrCode != 0) BEGIN SET @ErrMethod = 'status'		GOTO Error END
		IF (@HTTPStatus IN (200,500)) BEGIN
			DECLARE	@Response TABLE ( Response NVarChar(max) )
			INSERT	@Response
			EXEC @ErrCode = sys.sp_OAGetProperty @OLEObject ,'responseText'							IF (@ErrCode != 0) BEGIN SET @ErrMethod = 'responseText'	GOTO Error END

			;WITH XMLNAMESPACES (
				 'http://www.w3.org/2001/XMLSchema-instance'	AS [xsi]
				,'http://www.w3.org/2001/XMLSchema'		AS [xsd]
				,'http://schemas.xmlsoap.org/soap/envelope/'	AS [soap])
			SELECT	 @@Header	= R.X.query('/soap:Envelope/soap:Header/*')
				,@@Body		= R.X.query('/soap:Envelope/soap:Body/*')
			FROM	@Response CROSS APPLY (SELECT Convert(XML,Replace(Response,' encoding="utf-8"','')) AS X) R
			-- Fault
			;WITH XMLNAMESPACES (
				 'http://www.w3.org/2001/XMLSchema-instance'	AS [xsi]
				,'http://www.w3.org/2001/XMLSchema'		AS [xsd]
				,'http://schemas.xmlsoap.org/soap/envelope/'	AS [soap])
			SELECT	 @ErrMethod	= @@SOAPAction
				,@ErrSource	= @@Body.value('(/soap:Fault/faultcode)[1]'	,'SysName')
				,@ErrDescription= @@Body.value('(/soap:Fault/faultstring)[1]'	,'SysName')
			WHERE	@HTTPStatus = 500
		END ELSE
			SELECT	 @ErrMethod	= 'send'
				,@ErrSource	= 'spSOAPMethod'
				,@ErrDescription= 'Ошибоный статус HTTP ответа "' + Convert(VarChar,@HTTPStatus) + '"'

		GOTO Destroy
	Error:	EXEC @ErrCode = sys.sp_OAGetErrorInfo @OLEObject ,@ErrSource OUT ,@ErrDescription OUT
	Destroy:EXEC @ErrCode = sys.sp_OADestroy @OLEObject
		IF (@ErrSource IS NOT NULL) BEGIN
			RAISERROR('Ошибка при выполнении метода "%s" в "%s": %s',18,1,@ErrMethod,@ErrSource,@ErrDescription)
			IF (@@TranCount > 0 AND XACT_STATE() != 0)
				ROLLBACK
			RETURN	@@Error
		END
	END ELSE BEGIN
		RAISERROR('Ошибка при создании OLE объекта "MSXML2.ServerXMLHTTP"',18,1)
		RETURN	@@Error
	END
END


требование поставщика услуги http://mcommunicator.ru/M2M/m2m_api.asmx?op=SendMessage

вызов:

DECLARE	 @URL		SysName
	,@Body		XML
-- Создание запроса
;WITH XMLNAMESPACES (DEFAULT 'http://mcommunicator.ru/M2M/')
SELECT	 @URL	= 'http://www.mcommunicator.ru/m2m/m2m_api.asmx'
	,@Body		= (
SELECT	 '1111'	AS msid
		,'test'	AS [message]
		,'1111' as naming
		,'1111' AS [login]
		,'202cb962ac59075b964b07152d234b70' as [password] --пароль в MD5
FOR	XML Path('SendMessage'),Type)
-- Вызов WebMethod-а
EXEC	dbo.spSOAPMethodCall
		 @URL
		,NULL	
		,@Body		OUT
-- Результат
;WITH XMLNAMESPACES (DEFAULT 'http://mcommunicator.ru/M2M')
SELECT	@Body.query('/SendMessageResponse/SendMessageResult/*')


ошибка:

Ошибка при выполнении метода "http://mcommunicator.ru/M2M/SendMessage" в "soap:Client": MSID_FORMAT_ERROR

как быстро IS_ROLEMEMBER отражает изменение членства в роли

$
0
0
Что-то странно:

1. Включаю через SSMS пользователя в роль, а

select IS_ROLEMEMBER('ETL', 'Aleks')

возвращает 0.

2. Для других пользователей из роли (включены туда давно - т.е. месяц или более назад)

select IS_ROLEMEMBER('ETL', 'Alekstest')

возвращает 1.

3. Чо за бред?

Исключить повторяющиеся записи

$
0
0
Добрый день!
есть таблица (названия фирм, емаилы) и у фирм они повторяются.
т.е. у двух фирм может быть один емаил.
Как сделать запрос что б выводил фирма, емаил и емаил не дублировался. т.е. выдавал одну строку, и пофиг какую фирму.

SISS, нужно передать данные из SQL Task в другой SQL Task

$
0
0
Положил на форму компонент SQL Task и в нём выполнил команду "Select".
Каким образом передать результаты этого селекта в другой блок SQL Task, чтобы там вести обработку результата?

Удаление записей

$
0
0
Здравствуйте. Мне необходимо сделать удаление записи по истечению срока и перенести ее в другую таблицу.


Вот что удалось найти на эту тему
DELETE FROM [messages] WHERE ([datetime]< 'конечная дата периода' AND [datetime]> 'начальная дата периода')

переопределение типа поля таблицы

$
0
0
необходимо переопределить тип поля smalldatetime c разрешением значения NULL на smalldatetime not null. пробую:
ALTER table TABLICA1 ALTER COLUMN N1 smalldatetime not NULL.
ПИШЕТ: Не удалось вставить значение NULL в столбец "N1", таблицы "TABLICA1"; в столбце запрещены значения NULL. Ошибка в UPDATE.
Как это сделать подскажите?

Сверка по двум столбцам с NULL

$
0
0
Добрый день, я не силен в SQL, нужно выполнить одну задачу.., есть база данных и в ней 2 таблицы (ДЛЯ СМО) и (БАЗА МИАЦ). в обоих таблицах есть столбцы ENP и SS, так же присутствуют NULL, нужно выбрать из таблицы (БАЗА МИАЦ) все что не сошлось по ENP и SS с таблицей (ДЛЯ СМО)...

select
dbo.ДЛЯ СМО.*,
dbo.БАЗА МИАЦ.*
FROM dbo.БАЗА МИАЦ

LEFT JOIN dbo.ДЛЯ СМО
ON dbo.ДЛЯ СМО.ENP <> dbo.БАЗА МИАЦ.ENP AND
dbo.ДЛЯ СМО.SS <> dbo.БАЗА МИАЦ.SS

что то подобное но не работает, идет долгое выполнение..

Замена значений в столбце

$
0
0
Как изменить занчения всего столбца таблицы? Например, есть столбец с фамилиями Иванов и Петров. Требуется во всем столбце заменить Петрова на Сидорова.
В dbForge Studio Ctrl+F кнопки "Заменить" и "Заменить все" почему-то не активны.
Создал процедуру:
CREATE PROCEDURE dbo.procedure1
AS 
UPDATE T SET F='Сидоров' WHERE F='Иванов'
GO

Она срабатывает, но данные в таблице не меняются. Что я делаю не так? В Excel тыкнул "Заменить все" и вот оно счастье, а в SQL Server как это сделать?

Cross Apply и Group

$
0
0
Добрый день!

Нужна помощь в написании запроса. Имеем:
SELECT pgName, PComp.ID AS pcID, pcName, PComp.pgiID, sumComp
    FROM PComp WITH(noLock)
        INNER JOIN PGroup WITH(noLock) ON PGroup.pgiID = PComp.pgiID
        CROSS APPLY (SELECT SUM(dbo.Cena(Comp.toID, 0, PGroup.pgNadb, 0, 1)) As [sumComp] FROM Comp WITH(noLock) WHERE Comp.pcID = PComp.ID) crossApply
    ORDER BY pgName, pcName;


Выдаёт ошибку:
Multiple columns are specified in an aggregated expression containing an outer reference. If an expression being aggregated contains an outer reference, then that outer reference must be the only column referenced in the expression.


Ругается на PGroup.pgNadb.

Как можно изменить запрос, чтобы он заработал?

В чём принципиальное отличие запросов?

$
0
0
Здравствуйте.
Помогите разобраться в таком моменте:
Два сервера (MS SQL Server), две базы, две бд. В первой базе таблица с двумя столбцами соответствия ключей (a_id int, b_id varchar):

a_id b_id
1313 d9a10275-3451-4078-dddd-75c48bdbaf44:15808:10728
.
.
.

Второй сервер, через "Связанные серверы" имеет доступ к этой таблице.

Необходимо получить a_id по ключу из b_id.
Этот код выполняется на обоих серверах:
SELECT * FROM (SELECT a_id, b_id =
	(SELECT substring(cn, start, end_-37)
		FROM
		  (SELECT
			  charindex(':', p.b_id) + 1 as start,
			  charindex(':', p.b_id, charindex(':', p.b_id) + 1) - 1 as end_, p.b_id AS cn
		  WHERE len(p.b_id) > 10) 
		AS t)
FROM dbo.tbl_1 AS p)
AS tt
WHERE b_id = '15808'


А этот, только на первом:
SELECT b_id, a_id 
FROM (SELECT SUBSTRING(cn, start, end_ - 37) AS b_id, a_id from 
        (SELECT CHARINDEX(':', dbo.tbl_1.b_id) + 1 AS start, CHARINDEX(':', dbo.tbl_1.b_id, CHARINDEX(':', dbo.tbl_1.b_id) + 1) - 1 AS end_, 
     dbo.tbl_1.b_id AS cn, b_id
    FROM dbo.tbl_1
    WHERE (LEN(dbo.tbl_1.b_id) > 10)) as tt) as ttt
    WHERE b_id='15808'

При выполнении на втором выдаёт ошибку:
Функции LEFT или SUBSTRING передан недопустимый параметр длины.

Причём, проблема только в "WHERE b_id='15808'". Без условия, работает.
Почему? С чем это может быть связано?
Спасибо.

ограничение ресурсов сервера для баз данных

$
0
0
имеется высоконагруженный сервер MS SQL 2012 SP3 CU6.
есть основная БД, с которой работает основная система. крайне важна скорость работы этой БД. работа 7*24 с высокой нагрузкой.
и несколько дополнительных баз данных установлены на том же сервере: BI, база данных для отчётов, для статистики, старые версии со старыми данными и т. д. всего штук 12. скорость работы этих БД совершенно не важна, работают они изредка.

у основной БД проблемы с производительностью.
счетчик [Buffer Manager: Buffer cache hit ratio] во время тяжелых запросов к основной БД показывает, что чтение с диска ненормально большое;
посмотрел использование кэша из sys.dm_os_buffer_descriptors - свыше 60% отожрали дополнительные БД.
отсоединил (detach) почти все дополнительные БД, и проблемы у основной БД значительно уменьшились.
в течении нескольких часов после attach, проблемы вернулись.

то есть часть проблемы в том, что дополнительные базы данных отнимают ресурсы у основной.
вопрос - как ограничить потребление дополнительных баз данных?

идеальный вариант - перенести дополнительные базы данных на другой сервер, но это к сожалению невозможно.
поставить ещё один инстанс на тот же сервер тоже не вариант.
спасибо.

Модератор: Тема перенесена из форума "Работа".

SSIS. Как будто теряется пароль соединения с базой при переносе пакета на другой ПК

$
0
0
Делаю пакет на своём ПК.
В пакете в диспетчере соединений создал подключение с SQL server. Пакет на моем ПК работает.
Переношу пакет на другой ПК. Там соединение с базой не работает.

Доступна запись OLE DB. Источник: "Microsoft OLE DB Provider for SQL Server" Результат: 0x80040E4D Описание: "Login failed for user 'sa'.".


в свойства соединения меняю параметр workstation id на имя другого ПК, но это не решило проблему.
такое ощущение, что пароль "слетает".

На другом ПК создаю такое же соединение и там проблем никаких нет

Итоги таблицы общие и промежуточные

$
0
0
Применил rollup для вывода итогов, но зачем мне промежуточный итог, всего по одной записи? Как это обойти? Как быть с сортировкой?

Должно быть 2016 Май
2016 Июль
OREDER BY выводит общий итог наверх.
Format(Convert Date с ROLLUP не работает. Есть ещё варианты?

Переход AlwaysOn на новые сервера.

$
0
0
Добрый день.
Возникла задача. Добавить в кластер Windows 2012R2 Stadard (x64) + SQL 2014 Enterprise (x64) новый узел/ноду без простоя и с возможностью, в случае "что то пошло не так, откатиться назад на старую указанную ноду" новый узел с Windows 2016 Standard (x64) и желательно SQL 2016 Enterprise.
Недельку пожив с 2мя разными версиями узлов, обновить 2ю ноду кластера windows 2016 или переустановить заново.

1. Изначально есть знания, что Microsoft рекомендует собирать кластер из одинакового железа и одинакового софта. Честно говоря для меня было удивительным, что можно собрать кластер из разных версий Windows.
2. Но, о чудо! Админ (не ДБА) пропустил все тесты при сборке кластера на тесте - и кластер собран (пока без SQL).
3. Установил на собранный кластер на тесте SQL 2014 Enterprise x64 (evaluation) пытаюсь хотя бы с одинаковой версией SQL запустить AlwaysOn. Мастером не запускается, начал по скриптам прогонять. Endpoint Avail.Group поднялись БД тестовая забэкапилась отресторилась и фул и журнал транзакций. Последний шаг - цикл который ждет вывода БД в онлайн - не проходит.
+ полный скрипт
--- YOU MUST EXECUTE THE FOLLOWING SCRIPT IN SQLCMD MODE.
:Connect NODE2012r2

IF (SELECT state FROM sys.endpoints WHERE name = N'Hadr_endpoint') <> 0
BEGIN
	ALTER ENDPOINT [Hadr_endpoint] STATE = STARTED
END


GO

use [master]

GO

GRANT CONNECT ON ENDPOINT::[Hadr_endpoint] TO [NT Service\MSSQLSERVER]

GO

:Connect NODE2016

IF (SELECT state FROM sys.endpoints WHERE name = N'Hadr_endpoint') <> 0
BEGIN
	ALTER ENDPOINT [Hadr_endpoint] STATE = STARTED
END


GO

use [master]

GO

GRANT CONNECT ON ENDPOINT::[Hadr_endpoint] TO [NT Service\MSSQLSERVER]

GO

:Connect NODE2012r2

IF EXISTS(SELECT * FROM sys.server_event_sessions WHERE name='AlwaysOn_health')
BEGIN
  ALTER EVENT SESSION [AlwaysOn_health] ON SERVER WITH (STARTUP_STATE=ON);
END
IF NOT EXISTS(SELECT * FROM sys.dm_xe_sessions WHERE name='AlwaysOn_health')
BEGIN
  ALTER EVENT SESSION [AlwaysOn_health] ON SERVER STATE=START;
END

GO

:Connect NODE2016

IF EXISTS(SELECT * FROM sys.server_event_sessions WHERE name='AlwaysOn_health')
BEGIN
  ALTER EVENT SESSION [AlwaysOn_health] ON SERVER WITH (STARTUP_STATE=ON);
END
IF NOT EXISTS(SELECT * FROM sys.dm_xe_sessions WHERE name='AlwaysOn_health')
BEGIN
  ALTER EVENT SESSION [AlwaysOn_health] ON SERVER STATE=START;
END

GO

:Connect NODE2012r2

USE [master]

GO

CREATE AVAILABILITY GROUP [grp1]
WITH (AUTOMATED_BACKUP_PREFERENCE = SECONDARY)
FOR DATABASE [db1]
REPLICA ON N'NODE2012R2' WITH (ENDPOINT_URL = N'TCP://node2012r2.kurenkov.test:5022', FAILOVER_MODE = AUTOMATIC, AVAILABILITY_MODE = SYNCHRONOUS_COMMIT, BACKUP_PRIORITY = 50, SECONDARY_ROLE(ALLOW_CONNECTIONS = ALL)),
	N'NODE2016' WITH (ENDPOINT_URL = N'TCP://node2016.kurenkov.test:5022', FAILOVER_MODE = AUTOMATIC, AVAILABILITY_MODE = SYNCHRONOUS_COMMIT, BACKUP_PRIORITY = 50, SECONDARY_ROLE(ALLOW_CONNECTIONS = ALL));

GO

:Connect NODE2016

ALTER AVAILABILITY GROUP [grp1] JOIN;

GO

:Connect NODE2012r2

BACKUP DATABASE [db1] TO  DISK = N'\\adtest\Share\db1.bak' WITH  COPY_ONLY, FORMAT, INIT, SKIP, REWIND, NOUNLOAD, COMPRESSION,  STATS = 5

GO

:Connect NODE2016

RESTORE DATABASE [db1] FROM  DISK = N'\\adtest\Share\db1.bak' WITH  NORECOVERY,  NOUNLOAD,  STATS = 5

GO

:Connect NODE2012r2

BACKUP LOG [db1] TO  DISK = N'\\adtest\Share\db1_20161215115747.trn' WITH NOFORMAT, NOINIT, NOSKIP, REWIND, NOUNLOAD, COMPRESSION,  STATS = 5

GO

:Connect NODE2016

RESTORE LOG [db1] FROM  DISK = N'\\adtest\Share\db1_20161215115747.trn' WITH  NORECOVERY,  NOUNLOAD,  STATS = 5

GO

:Connect NODE2016


-- Wait for the replica to start communicating
begin try
declare @conn bit
declare @count int
declare @replica_id uniqueidentifier 
declare @group_id uniqueidentifier
set @conn = 0
set @count = 30 -- wait for 5 minutes 

if (serverproperty('IsHadrEnabled') = 1)
	and (isnull((select member_state from master.sys.dm_hadr_cluster_members where upper(member_name COLLATE Latin1_General_CI_AS) = upper(cast(serverproperty('ComputerNamePhysicalNetBIOS') as nvarchar(256)) COLLATE Latin1_General_CI_AS)), 0) <> 0)
	and (isnull((select state from master.sys.database_mirroring_endpoints), 1) = 0)
begin
    select @group_id = ags.group_id from master.sys.availability_groups as ags where name = N'grp1'
	select @replica_id = replicas.replica_id from master.sys.availability_replicas as replicas where upper(replicas.replica_server_name COLLATE Latin1_General_CI_AS) = upper(@@SERVERNAME COLLATE Latin1_General_CI_AS) and group_id = @group_id
	while @conn <> 1 and @count > 0
	begin
		set @conn = isnull((select connected_state from master.sys.dm_hadr_availability_replica_states as states where states.replica_id = @replica_id), 1)
		if @conn = 1
		begin
			-- exit loop when the replica is connected, or if the query cannot find the replica status
			break
		end
		waitfor delay '00:00:10'
		set @count = @count - 1
	end
end
end try
begin catch
	-- If the wait loop fails, do not stop execution of the alter database statement
end catch
ALTER DATABASE [db1] SET HADR AVAILABILITY GROUP = [grp1];

GO

В общем последний шаг - цикл @conn <> 1 который 30 раз проверяет с задержкой вышла реплика connect_state в 1, ничего не делая, тупо ожидание в 10 секунд и так 30 раз показывает что заканчивается через 30 итераций и 5 минут ожидания и вылетает с ожибкой на команте - ALTER DATABASE [db1] SET HADR AVAILABILITY GROUP = [grp1];.
+ сам шаг скрипта сгенерированного мастером
-- Wait for the replica to start communicating
begin try
declare @conn bit
declare @count int
declare @replica_id uniqueidentifier 
declare @group_id uniqueidentifier
set @conn = 0
set @count = 30 -- wait for 5 minutes 

if (serverproperty('IsHadrEnabled') = 1)
	and (isnull((select member_state from master.sys.dm_hadr_cluster_members where upper(member_name COLLATE Latin1_General_CI_AS) = upper(cast(serverproperty('ComputerNamePhysicalNetBIOS') as nvarchar(256)) COLLATE Latin1_General_CI_AS)), 0) <> 0)
	and (isnull((select state from master.sys.database_mirroring_endpoints), 1) = 0)
begin
    select @group_id = ags.group_id from master.sys.availability_groups as ags where name = N'grp1'
	select @replica_id = replicas.replica_id from master.sys.availability_replicas as replicas where upper(replicas.replica_server_name COLLATE Latin1_General_CI_AS) = upper(@@SERVERNAME COLLATE Latin1_General_CI_AS) and group_id = @group_id
	while @conn <> 1 and @count > 0
	begin
		set @conn = isnull((select connected_state from master.sys.dm_hadr_availability_replica_states as states where states.replica_id = @replica_id), 1)
		if @conn = 1
		begin
			-- exit loop when the replica is connected, or if the query cannot find the replica status
			break
		end
		waitfor delay '00:00:10'
		set @count = @count - 1
	end
end
end try
begin catch
	-- If the wait loop fails, do not stop execution of the alter database statement
end catch
ALTER DATABASE [db1] SET HADR AVAILABILITY GROUP = [grp1];


Тынца доказывающего что нельзя собрать AlwaysOn на разных версиях Windows я не нашел. Мануалов много типа поднять олвизон 2012. поднять кластер 2008, 2012 и т.п.
А вот как аргументированно показать руководству что идея поднять на продакшн ноду с другой версий Windows Server я не знаю. На слово - не верят, нужен тынц. Ну или если все таки возможно поднять олвизон на разных вин сервер - подскажите как.

онлайн встреча Russian Virtual Chapter - 21 декабря

$
0
0
21 декабря 2016 пройдет вторая встреча на тему "Microsoft BI: обзор нового функционала"

Описание: Облачный сервис для бизнес-аналитики Power BI каждый месяц получает широкий ряд обновлений в функционале, причём как для настольного клиента, так и для мобильного и веб-портала. Доклад будет посвящен последним нововведениям.
Докладчик: Александра Чижова, Архитектор Business Intelligence и DataWarehouse решений, Microsoft, Россия
В Microsoft с 2014 года, основная специализация — создание разнообразных демопроектов в сфере бизнес-аналитики, с упором на SQL Server, Azure Machine Learning и Power BI, а также детальная проработка возможной архитектуры решений. До Microsoft занималась разработкой и внедрением BI-решений на разных платформах.

Регистрация: https://attendee.gotowebinar.com/register/7802045829598921217

Одновременное выполнение запросов

$
0
0
Здравствуйте, дамы и господа!
Прошу помощи. В базу MS SQL пишутся данные из скада системы. Таблица заполняется до 100 Гб и запись данных прекращается.
Создал Job, который раз в сутки проверяет размер таблицы и при некотором размере начинает очистку таблицы. Проблема в том, что при выполнении задания запрос от скады встает в очередь и данные в таблицу не пишутся, что есть не хорошо. Можно выполнять задание таким образом, чтобы не прерывать запись в таблицу.
Таблица индексируется по дате. Удаляются записи за первые записанные сутки.
Viewing all 7251 articles
Browse latest View live