Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/sql-server/24.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql server 插入到Prod数据库的测试数据如何删除该记录_Sql Server_Sql Server 2008_Oracle Sqldeveloper - Fatal编程技术网

Sql server 插入到Prod数据库的测试数据如何删除该记录

Sql server 插入到Prod数据库的测试数据如何删除该记录,sql-server,sql-server-2008,oracle-sqldeveloper,Sql Server,Sql Server 2008,Oracle Sqldeveloper,我使用ProdGUI错误地插入了一些测试记录,这些记录被写入了PROD数据库。有没有办法找到这些记录涉及到哪些表和列 如果您启用了正确的事务日志记录并使用SQL Server 2008及更高版本,请多谢。您可以尝试使用并检查表发生的更改。如果您启用了正确的事务日志记录并使用SQL Server 2008及更高版本,希望它对您有所帮助。您可以尝试使用并检查表发生的更改。希望它能有所帮助我想您没有启用运行跟踪、CDC或其他跟踪机制。因此,以下步骤似乎是一个合理的解决方案: 确保您无法从数据库中找到并

我使用ProdGUI错误地插入了一些测试记录,这些记录被写入了PROD数据库。有没有办法找到这些记录涉及到哪些表和列


如果您启用了正确的事务日志记录并使用SQL Server 2008及更高版本,请多谢。您可以尝试使用并检查表发生的更改。如果您启用了正确的事务日志记录并使用SQL Server 2008及更高版本,希望它对您有所帮助。您可以尝试使用并检查表发生的更改。希望它能有所帮助

我想您没有启用运行跟踪、CDC或其他跟踪机制。因此,以下步骤似乎是一个合理的解决方案:

  • 确保您无法从数据库中找到并删除该数据 应用程序图形用户界面
  • 使用调优模板运行SQL探查器跟踪(它将为您提供足够的信息)。包括ApplicationName和HostName列以标识您的连接
  • 使用UI再插入一条测试记录(尝试执行与以前相同的操作)
  • 停止跟踪并找到插入的数据
  • 识别使用ApplicationName、HostName和SPID从应用程序中进行的其他修改
  • 创建SQL脚本以删除这些记录
  • 确定以前插入的记录(可能是插入到同一个表中的记录)
  • 写一个查询来删除它们
  • 公开交易
  • 删除这些记录
  • 检查您是否只删除了所需的记录
  • 提交事务
  • UPD:根据对这个答案的评论(我完全同意),如果您有可以执行相同操作的开发或测试环境,请执行该操作并在那里找到修改过的记录。之后,在PROD的相同表中查找修改过的记录


    另外,我不能保证按照这些步骤您将能够清理插入的数据,但您可能能够做到这一点。我还建议在删除数据之前创建完整备份。

    我想您没有启用运行跟踪、CDC或其他跟踪机制。因此,以下步骤似乎是一个合理的解决方案:

  • 确保您无法从数据库中找到并删除该数据 应用程序图形用户界面
  • 使用调优模板运行SQL探查器跟踪(它将为您提供足够的信息)。包括ApplicationName和HostName列以标识您的连接
  • 使用UI再插入一条测试记录(尝试执行与以前相同的操作)
  • 停止跟踪并找到插入的数据
  • 识别使用ApplicationName、HostName和SPID从应用程序中进行的其他修改
  • 创建SQL脚本以删除这些记录
  • 确定以前插入的记录(可能是插入到同一个表中的记录)
  • 写一个查询来删除它们
  • 公开交易
  • 删除这些记录
  • 检查您是否只删除了所需的记录
  • 提交事务
  • UPD:根据对这个答案的评论(我完全同意),如果您有可以执行相同操作的开发或测试环境,请执行该操作并在那里找到修改过的记录。之后,在PROD的相同表中查找修改过的记录


    另外,我不能保证按照这些步骤您将能够清理插入的数据,但您可能能够做到这一点。我还建议在删除数据之前创建一个完整备份。

    您可以跟踪代码,查看它涉及哪些表。在dev上运行Profiler,查看它在输入新记录时发送的代码或调用的过程,方法与在prod上相同

    如果您有正式的PK和FK关系,您可能会通过反复试验发现,因为在删除所有子记录之前,它不允许您删除父记录。并在开发环境中使用其他一些记录进行测试,以确定可能涉及哪些表。或者,您可以编写FKs脚本,以查看哪些其他表与父表相关

    如果您有审计(每个企业解决方案都应该有,但我离题了),您通常可以在审计表中查找当时的事务。我们的审计表既有事务的日期时间,也有用户,这使得筛选这些内容变得更容易

    当然,如果您知道自己的数据模型,那么在开始之前应该有一个非常好的想法。或者,如果您在所有子表中都有一个特定的id,并且没有方便的FK,那么您可以检查系统表以查找哪些表具有该列名。不过,这假设了一个相当标准的命名约定。如果您在不同的表中调用同一列的不同内容,您可能会错过一些


    如果您使用的是ORM,那么应该有某种方法来检查对象中与您执行的特定任务相关的表。因此,如果插入了实例的测试顺序,请检查order对象中包含的内容

    您可以跟踪代码,查看它涉及哪些表。在dev上运行Profiler,查看它在输入新记录时发送的代码或调用的过程,方法与在prod上相同

    如果您有正式的PK和FK关系,您可能会通过反复试验发现,因为在删除所有子记录之前,它不允许您删除父记录。并在开发环境中使用其他一些记录进行测试,以确定可能涉及哪些表。或者,您可以编写FKs脚本,以查看哪些其他表与父表相关

    如果您有审计(每个企业解决方案都应该有,但我离题了),您通常可以在审计表中查找当时的事务。我们的审计表既有事务的日期时间,也有用户,这使得筛选这些内容变得更容易