Что имею: Есть машина с установленным экземпляром Microsoft SQL Server 2012 Express, есть полный доступ к данной машине с правами локального администратора.
Проблема: Проблема в том что место в базе закончилось т.к. это экспресс редакция.
Получаю вот такие сообщения в журнале Windows: CRE ATE DATABASE or ALT ER DATABASE failed because the resulting cumulative database size would exceed your licensed limit of 10240 MB per database.
Т.к. Microsoft SQL Server 2012 Express ставил не я и найти кто это делала не представляется возможным то встает вопрос как почистит базу?
Побывал остановить SQL Server и скопировать файл базы и транзакций на другой SQL Server и там подцепить и очистить в Microsoft SQL Server Management Studio 18 нужные таблицы запросами:
-- Выбираем базу данных для очистки
USE [MYBASE];
GO
--Удалит все строки в таблице
DELETE FROM MyTable;
GO
А потом сжать базу и перенести заново на SQL Server 2012 Express и запустить сервис. Но при при попытке входа через вэб сервис что крутится на хосте выдает ошибку:
Server Error in '/WebBase2' Application.
Cannot open database "MyBase" requested by the login. The login failed.
Login failed for user 'NT AUTHORITY\SYSTEM'.
Description: An unhandled exception occurred during the execution of the current web request. Please review the stack trace for more information about the error and wh ere it originated in the code.
Exception Details: System.Data.SqlClient.SqlException: Cannot open database "MyBase" requested by the login. The login failed.
Login failed for user 'NT AUTHORITY\SYSTEM'.
Собственно как победить? Как можно очистить нужные таблицы? Кто с подобной проблемой уже сталкивался и как решили?
есть полный доступ к данной машине с правами локального администратора
Остановить службу sql, запустить её заново в Single User Mode (добавив параметр -m). Зайти в sql локальным администратором windows, сделать себе логин по вкусу, внести его в группу sysadmin. Остановить службу, вернуть параметры в исходное состояние, запустить все заново.
(1) Если к SQL можете подключиться то что-то можно сделать.
Для очистки таблиц используйте TRUNCATE.
Для того чтоб базы можно было утащить и подцепить на другом сервере
USE [master]
GO
EXEC master.dbo.sp_detach_db @dbname = N'MYBASE'
GO
(5) Нет лицензии на это (SQL Standart) и нет места физически на диске (он маленький) это встроенная среда с windows embedded 8.1.
Вскрывать тоже не вариант, под пломбами. А тех.под. в Канаде)))