Минут 10 ковырялся с этим. Вот результат:
dtexec /file NewSnapshot.dtsx /set \package.connections[{ConnectionID}].InitialCatalog;SmartStax_tmp /set
\package.connections[{ConnectionID}].ConnectionString;\""Data Source=Server;Initial Catalog=Database;Provider=SQLNCLI.1;Integrated
Security=SSPI;Auto Translate=false;\"" /set \package.connections[{ConnectionID}].InitialCatalog;SmartStax /set
\package.connections[{ConnectionID}].ConnectionString;\""Data Source=Server;User ID=login;Password=password;Initial
Catalog=database;Provider=SQLNCLI.1;Auto Translate=false;"\"
среда, 17 марта 2010 г.
пятница, 15 января 2010 г.
Change database collation (by force)
Злостно снасильничать над БД и поменять Collation можно следующей последовательностью команд:
ALTER DATABASE [DatabaseName] SET SINGLE_USER WITH ROLLBACK IMMEDIATE
ALTER DATABASE [DatabaseName] COLLATE [new collation name]
ALTER DATABASE [DatabaseName] SET MULTI_USER
Изменить COLLATION всех колонок:
declare @toCollation sysname
SET @toCollation = 'SQL_Latin1_General_CP1_CI_AS' -- Database default collate
SELECT 'ALTER TABLE ' + INFORMATION_SCHEMA.COLUMNS.TABLE_NAME +
' ALTER COLUMN ' + COLUMN_NAME + ' ' + DATA_TYPE +
CASE WHEN CHARACTER_MAXIMUM_LENGTH = -1 then '(max)'
WHEN DATA_TYPE in ('text','ntext') then ''
WHEN CHARACTER_MAXIMUM_LENGTH IS NOT NULL
THEN '('+(CONVERT(VARCHAR,CHARACTER_MAXIMUM_LENGTH)+')' )
ELSE isnull(CONVERT(VARCHAR,CHARACTER_MAXIMUM_LENGTH),' ') END
+' COLLATE ' + @toCollation+ ' ' + CASE IS_NULLABLE
WHEN 'YES' THEN 'NULL'
WHEN 'No' THEN 'NOT NULL'
END
FROM INFORMATION_SCHEMA.COLUMNS INNER JOIN INFORMATION_SCHEMA.TABLES
ON INFORMATION_SCHEMA.COLUMNS.TABLE_NAME = INFORMATION_SCHEMA.TABLES.TABLE_NAME
AND INFORMATION_SCHEMA.COLUMNS.TABLE_SCHEMA = INFORMATION_SCHEMA.TABLES.TABLE_SCHEMA
WHERE DATA_TYPE IN ('varchar' ,'char','nvarchar','nchar','text','ntext')
AND TABLE_TYPE = 'BASE TABLE'
and COLLATION_NAME <> @toCollation
Источник: http://sqlblogcasts.com/blogs/ssqanet/archive/2008/03/12/tsql-to-change-collation-of-database-whats-new-in-sql-2008-then.aspx
ALTER DATABASE [DatabaseName] SET SINGLE_USER WITH ROLLBACK IMMEDIATE
ALTER DATABASE [DatabaseName] COLLATE [new collation name]
ALTER DATABASE [DatabaseName] SET MULTI_USER
Изменить COLLATION всех колонок:
declare @toCollation sysname
SET @toCollation = 'SQL_Latin1_General_CP1_CI_AS' -- Database default collate
SELECT 'ALTER TABLE ' + INFORMATION_SCHEMA.COLUMNS.TABLE_NAME +
' ALTER COLUMN ' + COLUMN_NAME + ' ' + DATA_TYPE +
CASE WHEN CHARACTER_MAXIMUM_LENGTH = -1 then '(max)'
WHEN DATA_TYPE in ('text','ntext') then ''
WHEN CHARACTER_MAXIMUM_LENGTH IS NOT NULL
THEN '('+(CONVERT(VARCHAR,CHARACTER_MAXIMUM_LENGTH)+')' )
ELSE isnull(CONVERT(VARCHAR,CHARACTER_MAXIMUM_LENGTH),' ') END
+' COLLATE ' + @toCollation+ ' ' + CASE IS_NULLABLE
WHEN 'YES' THEN 'NULL'
WHEN 'No' THEN 'NOT NULL'
END
FROM INFORMATION_SCHEMA.COLUMNS INNER JOIN INFORMATION_SCHEMA.TABLES
ON INFORMATION_SCHEMA.COLUMNS.TABLE_NAME = INFORMATION_SCHEMA.TABLES.TABLE_NAME
AND INFORMATION_SCHEMA.COLUMNS.TABLE_SCHEMA = INFORMATION_SCHEMA.TABLES.TABLE_SCHEMA
WHERE DATA_TYPE IN ('varchar' ,'char','nvarchar','nchar','text','ntext')
AND TABLE_TYPE = 'BASE TABLE'
and COLLATION_NAME <> @toCollation
Источник: http://sqlblogcasts.com/blogs/ssqanet/archive/2008/03/12/tsql-to-change-collation-of-database-whats-new-in-sql-2008-then.aspx
среда, 11 ноября 2009 г.
Disabling or Enabling SQL Server Agent Jobs
Групповая работа с задачами SQL Server Agent:
Disable All SQL Server Agent Jobs
USE MSDB;
GO
UPDATE MSDB.dbo.sysjobs
SET Enabled = 0
WHERE Enabled = 1;
GO
Enable All SQL Server Agent Jobs
USE MSDB;
GO
UPDATE MSDB.dbo.sysjobs
SET Enabled = 1
WHERE Enabled = 0;
GO
Disable Jobs By Job Name
USE MSDB;
GO
UPDATE MSDB.dbo.sysjobs
SET Enabled = 0
WHERE [Name] LIKE 'Admin%';
GO
Источник: http://www.mssqltips.com/tip.asp?tip=1400
Disable All SQL Server Agent Jobs
USE MSDB;
GO
UPDATE MSDB.dbo.sysjobs
SET Enabled = 0
WHERE Enabled = 1;
GO
Enable All SQL Server Agent Jobs
USE MSDB;
GO
UPDATE MSDB.dbo.sysjobs
SET Enabled = 1
WHERE Enabled = 0;
GO
Disable Jobs By Job Name
USE MSDB;
GO
UPDATE MSDB.dbo.sysjobs
SET Enabled = 0
WHERE [Name] LIKE 'Admin%';
GO
Источник: http://www.mssqltips.com/tip.asp?tip=1400
пятница, 3 июля 2009 г.
WinHttpDownloadFileToMemory failed with hr=0x80190194
Такую ошибку выявляет приложение ClientDiag.exe при работе с WSUS-клиентом.

По данным с Microsoft.com это означает, что отсутствует папка SelfUpdate на сервере WSUS. Но что означает надпись о том, что версия сервера SUS 1.0 (при наличии WSUS 3.0)?
Нигде я не нашел упоминания о том, что некоторые версии клиента WSUS плохо воспринимают FQDN-написание имени сервера WSUS в групповых политиках (при том, что ресолвится все совершенно нормально). При написании FQDN-имени сервера клиент начинает лезть на себя самого. Достаточно поменять имя с FQDN на обычное NetBios и все работает.

По данным с Microsoft.com это означает, что отсутствует папка SelfUpdate на сервере WSUS. Но что означает надпись о том, что версия сервера SUS 1.0 (при наличии WSUS 3.0)?
Нигде я не нашел упоминания о том, что некоторые версии клиента WSUS плохо воспринимают FQDN-написание имени сервера WSUS в групповых политиках (при том, что ресолвится все совершенно нормально). При написании FQDN-имени сервера клиент начинает лезть на себя самого. Достаточно поменять имя с FQDN на обычное NetBios и все работает.
среда, 17 июня 2009 г.
Missing performance counter (s) - счетчики производительности пропали
Когда такая беда происходит, то есть пара вариантов:
1. Если пропали ВСЕ счетчики, то восстановить их можно командой lodctr /r
2. Если отсутствуют некоторые (у меня это произошло почему-то со счетчиком Network Interface в Windows 2000 Server), то можно скачать отсюда программу и включить их обратно.
Источник: http://help.wugnet.com/windows2/missing-Network-Interface-Perfmon-ftopict518584.html
1. Если пропали ВСЕ счетчики, то восстановить их можно командой lodctr /r
2. Если отсутствуют некоторые (у меня это произошло почему-то со счетчиком Network Interface в Windows 2000 Server), то можно скачать отсюда программу и включить их обратно.
Источник: http://help.wugnet.com/windows2/missing-Network-Interface-Perfmon-ftopict518584.html
суббота, 13 июня 2009 г.
SQL-функция AVG вызывает переполнение (Arithmetic overflow error)
Такая неприятная вещь бывает даже в случае, когда надо посчитать среднее от довольно маленькой величины (например tinyint), но в большом массиве. Компания Майкрософт по этой ссылке говорит примерно следующее:
"...Мы расследовали эту проблему и даже придумали, как решить ее, но из-за нехватки ресурсов и времени мы не успеваем вставить решение в SQL 2008, так что ждите следующей версии..." - Разгильдяи, одним словом. Workaround по данной ссылке не описан.
Однако, другие умные люди нашли этот воркэраунд: предположим, что инструкция типа
SELECT AVG(bytessent)
вызывает ошибку Arithmetic overflow error. Перепишем ее как
SELECT AVG(CAST(bytessent AS bigint))
и все получится.
Источники:
http://connect.microsoft.com/SQLServer/feedback/ViewFeedback.aspx?FeedbackID=241543
http://www.sqlteam.com/forums/topic.asp?TOPIC_ID=75175
"...Мы расследовали эту проблему и даже придумали, как решить ее, но из-за нехватки ресурсов и времени мы не успеваем вставить решение в SQL 2008, так что ждите следующей версии..." - Разгильдяи, одним словом. Workaround по данной ссылке не описан.
Однако, другие умные люди нашли этот воркэраунд: предположим, что инструкция типа
SELECT AVG(bytessent)
вызывает ошибку Arithmetic overflow error. Перепишем ее как
SELECT AVG(CAST(bytessent AS bigint))
и все получится.
Источники:
http://connect.microsoft.com/SQLServer/feedback/ViewFeedback.aspx?FeedbackID=241543
http://www.sqlteam.com/forums/topic.asp?TOPIC_ID=75175
четверг, 28 мая 2009 г.
Написание службы в VB.NET Express
VB.NET Express по умолчанию не имеет шаблона для написания собственного сервиса. Однако, все поправимо - отсюда http://www.planet-source-code.com/vb/scripts/ShowCode.asp?txtCodeId=4511&lngWId=10
или отсюда
http://sites.google.com/site/mellerbeck/Home/Windows_Se1973412152006.zip?attredirects=0
можно скачать шаблоны и установить их в My Documents\Visual Studio 2005\Templates\ProjectTemplates\Visual Basic. Теперь, после перезапуска VBExpress, появится шаблон для сервиса (Windows Service).
или отсюда
http://sites.google.com/site/mellerbeck/Home/Windows_Se1973412152006.zip?attredirects=0
можно скачать шаблоны и установить их в My Documents\Visual Studio 2005\Templates\ProjectTemplates\Visual Basic. Теперь, после перезапуска VBExpress, появится шаблон для сервиса (Windows Service).
Подписаться на:
Сообщения (Atom)
