我已将本地计算机中的数据库导入服务器计算机。导入数据库时,DB的字符集值由系统默认设置为" Latin"。我已将字符集更改为" utf8
"对于数据库。但是,不修改数据库排序规则值的存储过程。目前它是" latin1_swedish_ci
"。如何更改" latin1_swedish_ci
"的数据库归类值到" utf8_general_ci
"对于所有存储过程。
SELECT DEFAULT_CHARACTER_SET_NAME, DEFAULT_COLLATION_NAME
FROM INFORMATION_SCHEMA.SCHEMATA WHERE SCHEMA_NAME = DB_Name;
USE DB_Name;
ALTER DATABASE DB_Name
DEFAULT CHARACTER SET = utf8
DEFAULT COLLATE=utf8_general_ci;
SET NAMES UTF8;
提前致谢。
答案 0 :(得分:7)
正如CREATE PROCEDURE and CREATE FUNCTION Syntax所述(强调补充):
如果不存在
CHARACTER SET
和COLLATE
属性,则使用时在常规创建时生效的数据库字符集和排序规则。为避免服务器使用数据库字符集和排序规则,请为字符数据参数提供显式CHARACTER SET
和COLLATE
属性。如果更改数据库默认字符集或排序规则,则必须删除并重新创建使用数据库默认值的存储例程,以便它们使用新的默认值。