Sql-Server
始終加密:如何插入或更新加密列?
我已經在我的 SQL Server 數據庫表的一列上配置了“始終加密”。通過“列加密設置=啟用”選項後,我可以從客戶端 SSMS 中選擇和查看數據。
但是當我嘗試將數據插入表中時,會出現以下錯誤:
消息 206,級別 16,狀態 2,第 1 行操作數類型沖突:varchar 與使用 (encryption_type = ‘RANDOMIZED’,encryption_algorithm_name = ‘AEAD_AES_256_CBC_HMAC_SHA_256’,column_encryption_key_name = ‘CEK_Auto1’,column_encryption_key_database_name = ‘TEST’) 加密的 varchar(8000) 不兼容collation_name = ‘SQL_Latin1_General_CP1_CI_AS’
我在這裡查詢簡單的插入 TSQL 語句。我需要進行哪些更改才能使其正常工作?
另外,如果我們想通過應用程序更新或插入加密列,需要對應用程序或應用程式碼進行哪些更改?
您需要為值使用變數,以便 SSMS 可以根據它使用的 API 參數化查詢。就像是:
DECLARE @fname varchar(30) = 'Kula' DECLARE @ename varchar(30) = 'Kalle' DECLARE @pnr varchar(11) = '752312-4545' DECLARE @age tinyint = 45 insert into dbo.Personer2 (Förnamn, Efternamn, Personnummer, Ålder) VALUES (@fname, @ename, @pnr, @age) SELECT * FROM Personer2