【问题标题】:Add emoji / emoticon to SQL Server table将表情符号/表情符号添加到 SQL Server 表
【发布时间】:2016-02-29 12:54:37
【问题描述】:

我正在尝试将表情符号/表情符号插入 SQL Server 数据库,但它只存储 ??? 而不是表情符号/表情符号。

我发现的只是对 SQL Server 而不是 MySQL 的帮助。

我试过了:link

但找不到答案,甚至无法设置:

ALTER TABLE mytable charset=utf8mb4, 
    MODIFY COLUMN textfield1 VARCHAR(255) CHARACTER SET utf8mb4,
    MODIFY COLUMN textfield2 VARCHAR(255) CHARACTER SET utf8mb4;

SQL Server 无法识别此命令。这仅适用于 Microsoft SQL Server 而不是 MySQL

【问题讨论】:

    标签: sql sql-server sql-server-2008 emoji emoticons


    【解决方案1】:

    使用NVARCHAR(size) 数据类型和前缀字符串文字与N:

    CREATE TABLE #tab(col NVARCHAR(100));
    
    INSERT INTO #tab(col) VALUES (N'? ? ? ? ? ? ⁉ ? ? ? ? ? ?');
    
    SELECT *
    FROM #tab;
    

    db<>fiddle demo

    输出:

    ╔═════════════════════════════════╗
    ║              col                ║
    ╠═════════════════════════════════╣
    ║ ? ? ? ? ? ? ⁉ ? ? ? ? ?? ║
    ╚═════════════════════════════════╝
    

    编辑:

    SQL Server 2019 及更高版本支持UTF-8 排序规则:

    CREATE TABLE t(col VARCHAR(100) COLLATE Latin1_General_100_CI_AI_SC_UTF8);
    -- column's data type is VARCHAR!
    -- collate could be set on column/database/instance level
    
    INSERT INTO t(col) VALUES (N'☢️');
    
    SELECT * FROM t;
    -- col
    -- ☢️
    

    db<>fiddle demo - SQL Server 2019

    【讨论】:

    • 我忘记更新数据库更改是错误的,它在更新实体后起作用
    猜你喜欢
    • 1970-01-01
    • 2020-07-15
    • 1970-01-01
    • 1970-01-01
    • 2015-10-16
    • 2017-02-02
    • 1970-01-01
    • 2014-03-27
    相关资源
    最近更新 更多