use work_TC_Digma; Declare @Instruction as varchar(MAX) declare @DateB as varchar(MAX); set @DateB='4012-01-01 00:00:00.000' Declare TablesAndFields cursor for SELECT objects.name as Tablename, isnull(objects1.name,'') as Tablename1, columns.name as columnname FROM dbo.sysobjects as objects left join dbo.syscolumns as columns on objects.id = columns.id Left join dbo.sysobjects as objects1 on objects1.name like objects.name+'%' where objects.xtype = 'U' and columns.xtype = 61 and (columns.name='_Period' or columns.name='_Date_Time') order by objects.name, objects1.name desc open TablesAndFields Declare @TableName as varchar(100) Declare @TableName1 as varchar(100) Declare @ColumnName as varchar(100) FETCH NEXT FROM TablesAndFields into @TableName, @TableName1, @ColumnName WHILE @@FETCH_STATUS = 0 BEGIN IF @TableName1 =@TableName set @Instruction = 'delete '+@TableName+' where '+@ColumnName+'<'''+@DateB+'''' ELSE set @Instruction = 'delete '+@TableName1 +' where ' + @TableName+'_IDRRef in (select _IDRRef from '+@TableName+' where '+@ColumnName+'<'''+@DateB+''')' print @Instruction EXEC(@Instruction) FETCH NEXT FROM TablesAndFields into @TableName,@TableName1, @ColumnName END close TablesAndFields deallocate TablesAndFields
Showing posts with label очистка данных. Show all posts
Showing posts with label очистка данных. Show all posts
Monday, March 12, 2012
Удаление устаревших данных с 1С за определенный период
Иногда просят почистить базу 1С за определенный период, стандартными методами это долгий и хлопотный процесс, используя же mssql получаем быстро и комфортно.
Subscribe to:
Posts (Atom)