我将一个用户定义的表类型(idlist)的SQL参数传递给存储过程 - 一直运行良好,直到我将Column Encryption Setting=Enabled;
添加到web.config以使应用程序与SQL一起工作始终加密功能。
var paramFilterFacilityList = new SqlParameter();
paramFilterFacilityList.ParameterName = "@f";
paramFilterFacilityList.TypeName = "dbo.idlist";
paramFilterFacilityList.Value = fValue;
paramFilterFacilityList.SqlDbType = SqlDbType.Structured;
提出的例外是:
表类型参数“@f”必须具有有效的类型名称。
关于可能会发生什么的任何想法?
答案 0 :(得分:1)
始终加密不支持TVP。当您使用“Column Encryptin Setting”启用时,您根本无法使用TVP。
答案 1 :(得分: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/上提出解决方法的博文。