Архив рубрики: СУБД

Системы Управления Базами Данных

MS SQL Server — поиск GUID по всем таблицам БД

Чтобы найти значение какого-либо идентификатора по всем таблицам базы данных, возможно воспользоваться запросом (в переменную @substr введите значение искомого параметра):

 

set nocount on
declare @name varchar(128), @substr varchar(128), @column varchar(128)
set @substr = 'EB4E3C8F-CF91-4286-AE7D-000005FA7318' --введите значение искомого параметра 
create table #rslt 
(table_name varchar(128), field_name varchar(128), value uniqueidentifier)

declare s cursor for select '['+TABLE_SCHEMA+'].['+ table_name+']' as table_name from information_schema.tables where table_type = 'BASE TABLE'
and LEFT(table_name,8)<>'MSmerge_' --and TABLE_NAME='DocumentTypeExpressions'
order by table_name

open s
fetch next from s into @name
while @@fetch_status = 0
begin
declare c cursor for 
select column_name as column_name from information_schema.columns 
--where data_type in ('text', 'ntext', 'varchar', 'char', 'nvarchar', 'char', 'sysname') and table_name = @name
where data_type in ('uniqueidentifier') and '['+TABLE_SCHEMA+'].['+table_name+']' = @name
-- set @name = @name
open c
fetch next from c into @column
while @@fetch_status = 0
begin
print 'Processing table - ' + @name + ', column - ' + @column
exec('insert into #rslt select ''' + @name + ''' as Table_name, ''' + @column + ''', ' + @column + 
' from ' + @name + ' WITH (NOLOCK) where ' + @column + ' = ''' + @substr + '''')
fetch next from c into @column
end
close c
deallocate c
fetch next from s into @name
end
select table_name as [Table Name], field_name as [Field Name], count(*) as [Matches found] from #rslt
group by table_name, field_name
order by table_name, field_name
--Если нужно, можем отобразить все найденные значения
--select * from #rslt order by table_name, field_name
drop table #rslt
close s
deallocate s 

В результате запрос вернёт информацию с наименованием схемы и таблицы (Table_Name), поля (Field Name) и количества совпадений (Matches found)

MS SQL Server ошибка при создании БД (the file does not reside in read-only database or filegroup)

При создании новой базы данных  в MS SQL Server столкнулся с ошибкой:

the file C:\Program Files\Microsoft SQL Server\MSSQL12.MSSQLSERVER\MSSQL\DATA\test.mdf is compressed but does not reside in read-only database or filegroup.

Ошибка создания БД - sql the file is compressed but does not reside_2

В данном случае помогло следующее:

Читать далее MS SQL Server ошибка при создании БД (the file does not reside in read-only database or filegroup)

MS SQL Server 2008 восстановление доступа (забыли пароль SA)

Что делать если нет пароля администратора SA MS SQL Server managment studio и нет способа зайти администратором Windows?

Решение проблемы — создаём пользователя с правами администратора MS SQL Server, из-под которого , например, сбрасываем пароль sa:

*Основное условие  — это наличие «смешанного» режима в настройках SQL Server’a:

SQL Server properties - mix mode

Читать далее MS SQL Server 2008 восстановление доступа (забыли пароль SA)

MS SQL Server — как вывести список всех таблиц

Список всех таблиц (TABLE_TYPE = BASE TABLE) и въюхи (TABLE_TYPE = VIEW) возможно с помощью запроса:

SELECT '[' + TABLE_SCHEMA + ']' + '.' + '[' + TABLE_Name + ']' as "наименование таблиц", * FROM INFORMATION_SCHEMA.TABLES 
order by 1

 

, где в результате выполнения запроса

TABLE_CATALOG  — наименование базы данных

TABLE_SCHEMA — наименование схемы базы данных

TABLE_NAME — наименование объекта (таблицы)

TABLE_TYPE — тип объекта ( таблица TABLE_TYPE = BASE TABLE, въюха (TABLE_TYPE = VIEW)

 

Ошибка при импорте Excel в MS SQL — поставщик OLEDB.12.0 не зарегистрирован на локальном компьютере

При попытке импортировать Excel файл (расширение .xlsx) согласно инструкции. При нажатии на кнопку «Next» в окне «Choose a Data Source«:

SQL Server Import Wizard - choose a data Source

появляется ошибка:

SQL Server Import Wizard - ошибка OLEDB.12 не зарегистрирован на локальном компьютере

Поставщик «Microsoft.ACE.OLEDB.12.0» не зарегистрирован на локальном компьютере. (System.Data)

Решение: Необходимо установить офисный системный драйвер AccessDatabaseEngine.exe с официального сайта Microsoft (https://www.microsoft.com/en-us/download/details.aspx?id=23734)

Ошибка создания конфигурации при установке SQL Server 2008 R2

В ходе установки SQL Server 2008 Express R2 на этапе создания конфигурации появляется ошибка:

Net.Framework - ошибка при установки SQL Server

An error has occurred creating the configuration section handler for userSettings/Microsoft.SqlServer.Configuration.LandingPage.Properties.Settings: Could not load file or assembly ‘System, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089’ or one of its dependencies. The System cannot find the file specified. (C:\Users\<User>\AppData\Local\Microsoft_Corporation\LandingPage.exe_StrongName_ryspccglaxmt4nhllj5z3thcyltsvyyx\10.0.0.0\user.config line

Решение:  

1. Загружаем и ставим платформу Microsoft .Net Framework 3.5 SP1.

2. Ставим пакет обновления Windows Installer 4.5.

и, если это не помогает, то:

удаляем каталог «C:\Users\{Username}\AppData\Local\Microsoft_Corporation\«

Could not load file or assembly ‘Microsoft.SqlServer.Sqm

При запуске компоненты администрирования MS SQL Server Managment Studio появляется ошибка:

Could not load file or assembly ‘Microsoft.SqlServer.Sqm, Version=10.0.0.0, Culture=neutral, PublicKeyToken=89845dcd8080cc91’ or one of its dependencies. The module was expected to contain an assembly manifest. (SqlMgmt)

MSSQLMS - Could not file assembly SqlMgmt Version =10.0.0.0

Одно из возможных решений кроме переустановки MS SQL Server:

Заменить файл Microsoft.SqlServer.Sqm.dll , расположенный в каталоге:

C:\Program Files\Microsoft SQL Server\100\Shared

в директориях:

C:\Program Files\Microsoft SQL Server\100\Tools\Binn\VSShell\Common7\IDE C:\Program Files (x86)\Microsoft SQL Server\100\Tools\Binn\VSShell\Common7\IDE

MS SQL Server — There is insufficient system memory in resource pool internal to run this query

В результате выполнения запроса в MS SQL Server Managment Studio появляется ошибка о нехватке системной памяти:

There is insufficient system memory in resource pool internal to run this query

Msg 701, Level 17, State 123, Line 3579

There is insufficient system memory in resource pool internal to run this query

Причиной данной проблемы могут быть:

  1. Большой запрос, который блокирует память;
  2. Ошибки в коде, которые являются причиной завышения количество обрабатываемых строк в запросе.

Читать далее MS SQL Server — There is insufficient system memory in resource pool internal to run this query

Автоматический перезапуск службы MSSQLSERVER

Иногда в результате аварийного отключения компьютера, сбоев операционной системе или приложений служба MS SQL Server’а (имя службы в данном случае MSSQLSERVER, может отличатся в зависимости от редакции SQL Server, для Express редакции — MSSQL$SQLEXPRESS) останавливается и требует запуска. Естественно в этом случае перестают работать все основные компоненты СУБД, включая и консоль MS SQL Server Managment Studio.

Для того, чтобы свести  вероятность данной ситуации к минимуму необходимо:

Читать далее Автоматический перезапуск службы MSSQLSERVER