复制加密的数据库视图

use*_*345 7 sql-server

我需要复制一份 SQL Server 数据库。该数据库有大约 40 个链接到其他数据库的视图,我也需要来自这些视图的示例数据。此外,视图已加密,因此当我尝试从其中一个视图生成脚本时,这是错误:

Property TextHeader is not available for View '[dbo].[TABLE1]'. This property may not 
exist for this object, or may not be retrievable due to insufficient access rights.  The 
text is encrypted. (Microsoft.SqlServer.Smo)
Run Code Online (Sandbox Code Playgroud)

从视图中获取包含数据的数据库副本的最佳方法是什么?我正在考虑创建额外的表并填充样本数据,但这似乎很冗长,那么有更好的方法吗?

Bre*_*zar 7

加密的存储过程和视图可以很容易地解密:

http://www.mssqltips.com/tip.asp?tip=1046

这将为您提供存储过程和视图的未加密文本。只需将 CREATE 语句更改为 ALTER,它就会用解密的版本覆盖加密版本。

不要在生产中执行此操作 - 在数据库的还原备份中执行此操作。这样,如果它是第三方供应商应用程序,您仍将在生产中得到支持。

  • 适用于 SQL Server 2000 及更早版本。SQL Server 2005+ 更难。并且链接的工具也已过时或不存在 (3认同)

Mar*_*ian 4

视图只是元数据定义(当然,如果它不是索引视图)。因此,复制数据库只会获得该视图的加密定义。

我认为最好的选择是使用这些视图中的当前数据创建新表,这样您就可以获得数据样本。