Sql-Server
‘show variables LIKE ‘%_database’ 的含義
儘管我是數據庫管理的新手,但我被指派將我們的 crm 從 mysql 遷移到 mssql。我已經遇到了一個我不理解的查詢並且它無法在 sql server 中執行的地步。
show variables LIKE '%_database'
以下是它的程式碼:
public static function checkDbUTF8Support($conn) { global $db_type; if($db_type == 'pgsql') return true; $dbvarRS = $conn->Execute("show variables like '%_database' "); $db_character_set = null; $db_collation_type = null; while(!$dbvarRS->EOF) { $arr = $dbvarRS->FetchRow(); $arr = array_change_key_case($arr); switch($arr['variable_name']) { case 'character_set_database' : $db_character_set = $arr['value']; break; case 'collation_database' : $db_collation_type = $arr['value']; break; } // If we have all the required information break the loop. if($db_character_set != null && $db_collation_type != null) break; } return (stristr($db_character_set, 'utf8') && stristr($db_collation_type, 'utf8')); } }
有人可以幫助我解釋和可能的解決方案
Show Variables 不是 ANSI SQL,它是 MySQL 特定的,因此它不會跨數據庫提供程序執行。
通讀該程式碼,它看起來像是在嘗試確定數據庫提供程序是否支持 UTF8。
如果你用Google搜尋,這
Show Variables
是一個 MySQL 命令,它返回有關目前數據庫的資訊。我認為您將不得不用不同的程式碼替換整個部分,以確定正在使用的數據庫是否支持 UTF8,我懷疑這取決於排序規則。
您可以在 sys.xml 中找到此資訊。表。
然而,Google搜尋 MSSQL Server 和 UTF8 似乎表明 MS 並不明確支持 UTF8。
這是您的問題“什麼是顯示變數”的答案,而不是您的問題“我的應用程序如何執行查詢以確定數據庫中的 UTF8 支持?”的解決方案。
高溫高壓