Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/opencv/3.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 Microsoft Dynamics NAV 2009如何删除许可证之外的对象?_Sql Server_Microsoft Dynamics_Navision_Dynamics Nav 2009_Microsoft Dynamics Nav - Fatal编程技术网

Sql server Microsoft Dynamics NAV 2009如何删除许可证之外的对象?

Sql server Microsoft Dynamics NAV 2009如何删除许可证之外的对象?,sql-server,microsoft-dynamics,navision,dynamics-nav-2009,microsoft-dynamics-nav,Sql Server,Microsoft Dynamics,Navision,Dynamics Nav 2009,Microsoft Dynamics Nav,在从2009年到2016年的升级过程中,我试图删除与旧停产产品相关的对象。对象不在或许可证的范围内,由表单、表和报告组成。删除时,我会遇到一个众所周知的错误: “您没有删除“[对象名称]”表的权限。” 我试过使用我的开发者许可证和客户许可证,但都没有成功。因为产品已经不存在了,所以保留这些对象是没有用的,我需要它们在升级过程中消失 删除不在许可证中的对象时,最好的方法或技术是什么 更新:如何解决此问题? 我联系了产品负责人并解释了我的问题。他们给了我一个简洁的PowerShell脚本来运行。这很

在从2009年到2016年的升级过程中,我试图删除与旧停产产品相关的对象。对象不在或许可证的范围内,由表单、表和报告组成。删除时,我会遇到一个众所周知的错误:

“您没有删除“[对象名称]”表的权限。”

我试过使用我的开发者许可证和客户许可证,但都没有成功。因为产品已经不存在了,所以保留这些对象是没有用的,我需要它们在升级过程中消失

删除不在许可证中的对象时,最好的方法或技术是什么

更新:如何解决此问题? 我联系了产品负责人并解释了我的问题。他们给了我一个简洁的PowerShell脚本来运行。这很有魅力。通过阅读脚本,我可以看到它正在使用SQL cmdlet从以下SQL表中选择和删除相关数据:

对象、对象元数据、对象元数据快照、对象跟踪、对象转换、权限


这是用于开发此产品的产品所有者的首选方法。它应适用于所有导航对象。我还没有成功尝试下面的一个答案(还有更多的尝试)。希望这些新信息能为某人提供足够的答案。

创建新的空数据库,只从旧数据库导出所需的对象,然后将它们导入新数据库。
在Nav 2016中,应用程序数据库可以与包含数据库的数据分离,所以(我假设)您可以将其从包含旧对象的数据库中卸载,然后将其装载到新的应用程序数据库中。不太清楚

创建新的空数据库,仅从旧数据库导出所需的对象,然后将它们导入新数据库。
在Nav 2016中,应用程序数据库可以与包含数据库的数据分离,所以(我假设)您可以将其从包含旧对象的数据库中卸载,然后将其装载到新的应用程序数据库中。不太清楚

这是由于许可证的范围,例如,您的开发许可证的范围为表7.000.000-7.000.200。如果要删除ID为20.000.000的表,则会出现该错误


最好的解决方案是,当你做UpDRAGE时,不要考虑需要删除的这些对象。导出除要删除的对象之外的所有对象。

这是由于许可证的范围,例如,您的开发许可证的范围为表7.000.000-7.000.200。如果要删除ID为20.000.000的表,则会出现该错误


最好的解决方案是,当你做UpDRAGE时,不要考虑需要删除的这些对象。导出除要删除的对象之外的所有对象。

有几个人成功地使用了这种方法,但肯定不能推荐用于生产系统,只需通过SQL从对象和补充表中删除这些对象即可。对于表,您需要手动删除SQL表本身及其VSIFT视图

更好的(可能)方法是通过SQL更改对象的数量,然后通过NAV删除对象

最好的方法是使用“killer objects”功能,该功能允许通过FOB导入删除对象:

如果您找到了可以为您提供此类杀手级对象的合作伙伴(他们需要有在所需范围内创建对象的许可证),它将以“干净”的方式解决您的问题


如果不是,您可能需要考虑在某个测试数据库中创建50000个范围内的空对象,通过SQL将它们的数量更改为过时的范围,将它们作为FOB导出,然后用“DELATE”将它们导入到目标数据库中。选项。

有几个人成功地使用了一种方法,但肯定不能推荐用于生产系统,即通过SQL从对象和补充表中删除这些对象。对于表,您需要手动删除SQL表本身及其VSIFT视图

更好的(可能)方法是通过SQL更改对象的数量,然后通过NAV删除对象

最好的方法是使用“killer objects”功能,该功能允许通过FOB导入删除对象:

如果您找到了可以为您提供此类杀手级对象的合作伙伴(他们需要有在所需范围内创建对象的许可证),它将以“干净”的方式解决您的问题


如果不是,您可能需要考虑在某个测试数据库中创建50000个范围内的空对象,通过SQL将它们的数量更改为过时的范围,将它们输出为FOB,然后用“DELATE”选项将它们导入到目标数据库中。不在许可证上的对象是问题的基础。那么你的建议就是把对象留在数据库中?不导出它们不会有任何作用,因为它们仍在数据库中。是的,仅使用不希望删除的对象创建新数据库。然后编译所有的对象来检查状态,如果有必要的话解决问题。我不知道这个脚本是如何开发的。所以你提到了sript在NAV中更新了敏感表,这样你就可以确保它是正确的。你好,当然可以。不在许可证上的对象是问题的基础。那么你的建议就是把对象留在数据库中?不导出它们不会有任何作用,因为它们仍在数据库中。是的,仅使用不希望删除的对象创建新数据库。然后编译所有的对象来检查状态,如果有必要的话解决问题。我不知道这个脚本是如何开发的。所以你提到了sript在NAV中更新了敏感表,这样你就可以确保它是正确的。规则