09 Dec 2010
Posted by: Ricardo Pichler in: Diversos
Pessoal,
Após o go-live geralmente sobram algumas empresas na base que foram usadas para testes, acertos e etc… Tudo bem que o lugar delas não é junto com a base de produção, mas não é o que sempre vemos por ai. Quando se remove uma empresa, nem sempre todas as tabelas envolvidas são limpas, e este post que originalmente foi postado no blog EMEA Dynamics AX Support serve justamente para mostrar como limpar esta base de qualquer ‘sujeira’ que tenha ficado de fora da limpeza que o AX faz.
DECLARE @_tableName nvarchar(40) DECLARE @_companyId nvarchar(4) SET @_companyId = N'<company_id>'; -- substitua pelo nome da empresa que deseja remover, por exemplo CEU DECLARE curSqlDictionary CURSOR FOR SELECT A.SQLNAME FROM SQLDICTIONARY A INNER JOIN SQLDICTIONARY X ON X.TABLEID = A.TABLEID AND X.FIELDID = 61448 WHERE A.FIELDID = 0 AND A.FLAGS = 0 OPEN curSqlDictionary FETCH NEXT FROM curSqlDictionary INTO @_tableName WHILE @@FETCH_STATUS = 0 BEGIN DECLARE @_sql nvarchar(4000) SET @_sql = N'DELETE FROM ' + QUOTENAME(@_tableName) + N' WHERE DATAAREAID = @_dataAreaId' EXEC sp_executesql @_sql, N'@_dataAreaId nvarchar(4)', @_dataAreaId = @_companyId FETCH NEXT FROM curSqlDictionary INTO @_tableName END CLOSE curSqlDictionary DEALLOCATE curSqlDictionary |
[]s
Pichler
Leave a reply