1

我将用户定义的表类型(idlist)的 SQL 参数传递给存储过程 - 在我添加Column Encryption Setting=Enabled;到 web.config 以使应用程序与 SQL 的 Always Encrypted 功能一起工作之前,一切都运行良好。

var paramFilterFacilityList = new SqlParameter();
paramFilterFacilityList.ParameterName = "@f";
paramFilterFacilityList.TypeName = "dbo.idlist";
paramFilterFacilityList.Value = fValue;
paramFilterFacilityList.SqlDbType = SqlDbType.Structured;

引发的异常是:

表类型参数“@f”必须具有有效的类型名称。

关于这里可能发生什么的任何想法?

4

2 回答 2

2

Always Encrypted 不支持 TVP。当您使用启用“列加密设置”时,您根本无法使用 TVP。

于 2016-02-18T11:26:40.073 回答
0

目前,我们在任何受支持的驱动程序(.NET / ODBC / JDBC)中都没有对 TVP 和 Always Encrypted 的内置支持。请查看我在https://blogs.msdn.microsoft.com/sqlcat/2016上的博客文章/08/09/using-table-valued-parameters-with-always-encrypted-in-sql-server-2016-and-azure-sql-database/提出了一种解决方法。

于 2016-08-24T16:17:16.723 回答