import ctds con = ctds.connect('', database='') str_value = r'{"__type":"Test:Test","Test":1,"OrderId":1}' data = [ { 'FancyCol': 1, 'Value': ctds.SqlVarChar(str_value.encode('utf-16le')), } ] con.bulk_insert('dbo.Test', data) con.commit() data = [ { 'FancyCol': 1, 'Value': ctds.SqlNVarChar(str_value), } ] con.bulk_insert('dbo.Test', data) con.commit() data = [ { 'FancyCol': 1, # SqlNVarChar never works for us if we insert into NVARCHAR(size) Columns, we always get # "Unicode data is odd byte size for column 2. Should be even byte size." also for this example, # so we use the SqlVarChar Type with utf-16le encoded text instead 'Value': ctds.SqlNVarChar(str_value), } ] con.bulk_insert('dbo.Test', data) con.commit() # Works for us data = [ { 'FancyCol': 1, 'Value': ctds.SqlVarChar(str_value.encode('utf-16le')), } ] con.bulk_insert('dbo.Test2', data) con.commit()