I also had severe problems to get your example to work, and it took me quite a while to figure out why. However, looking at the your error message, it does not match the message I got. So you may be running into something else.
Eventually, this ran successfully for me:
DROP TABLE IF EXISTS both
CREATE TABLE dbo.both (
id int IDENTITY(1,1) PRIMARY KEY,
random varchar(100) COLLATE DATABASE_DEFAULT
ENCRYPTED WITH (COLUMN_ENCRYPTION_KEY = CEK_Auto1,
ENCRYPTION_TYPE = RANDOMIZED,
ALGORITHM = 'AEAD_AES_256_CBC_HMAC_SHA_256') NULL,
determ varchar(100) COLLATE Latin1_General_100_BIN2_UTF8
ENCRYPTED WITH (COLUMN_ENCRYPTION_KEY = CEK_Auto1,
ENCRYPTION_TYPE = Deterministic,
ALGORITHM = 'AEAD_AES_256_CBC_HMAC_SHA_256') NULL
);
go
declare @random varchar(100) = 'rr';
declare @determ varchar(100) = 'dd';
insert into both (random, determ) values (@random, @determ);
The key was that I have a UTF8 collation as my database collation, and with varchar, the code page of the database collation must match the code page of the collation of the encrypted column. For nvarchar this is not an issue. (And, unless you are using a UTF-8 collation, you should use nvarchar for string data in most cases.)
But since you get a different error message, this may not apply to you. But try nvarchar anyway and check your database collation.
Also, make sure that you have checked this option in SSMS:
Then again, as we already have discussed there is little reason to use deterministic encryption when you have enclaves, so go for randomised.