Тема: DELETEALL в SQL
Показать сообщение отдельно
Старый 12.05.2014, 14:08   #1  
ОльгаМ is offline
ОльгаМ
Участник
 
36 / 10 (1) +
Регистрация: 07.09.2004
Адрес: Москва
Добрый день!

Поскольку Temp-файл ограничен в объеме 2 гб, мне приходится его периодически чистить.
Для этого я пользовалась DELETEALL.
К сожалению, когда он большой, то чистка его занимает также приличное время.
Сделала его постоянным и написала функцию удаления на SQL.
Увы, я уже второй раз сталкиваюсь с этой проблемой, по какой-то причине SQL второй раз не хочет его чистить.
Привожу фрагменты:

ConnectSQL();
_TableName := STRSUBSTNO('[dbo].[%1', COMPANYNAME) + '$Debts Forma 5 Buffer]';
_TableName1 := STRSUBSTNO('[dbo].[%1', COMPANYNAME) + '$Debts Forma 5 Buffer1]';
strSQL := STRSUBSTNO('USE [%1]; SET LOCK_TIMEOUT -1;',DatabaseName);
strSQL += 'declare @str varchar(4000)';
strSQL += ' set @str = ''DELETE with(TABLOCK) FROM ''+' +'''' + _TableName+ ''''+ '' +
'+'' DELETE with(TABLOCK) FROM ''+' +'''' + _TableName1+ ''''+ ''+ ' exec (@str)';

..................
adocon.Execute(_strSQL);