Sql-Server
SQLCMD 命令無法插入重音符號
我正在嘗試執行sqlcmd.exe以從命令行設置新數據庫。我在 Windows 7 64 位上使用 SQL SERVER Express 2012。
這是我使用的命令:
SQLCMD -S .\MSSQLSERVER08 -V 17 -E -i %~dp0\aqualogyDB.sql -o %~dp0\databaseCreationLog.log
這是一段 sql 文件創建腳本:
CREATE DATABASE aqualogy COLLATE Modern_Spanish_CI_AS WITH TRUSTWORTHY ON, DB_CHAINING ON; GO use aqualogy GO CREATE TABLE [dbo].[BaseLayers] ( [Code] nchar(100) NOT NULL , [Geometry] nvarchar(MAX) NOT NULL , [IsActive] bit NOT NULL DEFAULT ((1)) ) EXEC sp_updateextendedproperty @name = N'MS_Description', @value = N'Capas de cartografía base de la aplicaicón. Consideramos en Galia Móvil la cartografía(...)' , @level0type = 'SCHEMA', @level0name = N'dbo' , @level1type = 'TABLE', @level1name = N'BaseLayers'
好吧,請檢查單詞上是否有一些重音;這是表的描述。數據庫創建沒有問題。正如您在隨附的螢幕截圖中所見,腳本可以理解“整理”。儘管如此,在檢查表格時仍無法正確顯示重音符號。
我真的很感激任何幫助。非常感謝。
$$ Edit $$: 大家好。使用 Notepad++ 更改 SQL 文件編碼效果很好!非常感謝您的幫助:我從這個問題中學到了一些有趣的東西!
從評論來看,問題不完全在於表或 SQLCMD 導入特殊字元的方式。通常,有問題的導入與腳本本身的格式有關。
Management Studio 本身提供了使用特定編碼保存的選項,這應該可以解決未來的問題。第一次保存文件(或使用另存為)時,您應該點擊Save按鈕附近的小箭頭,以使用Save with encoding選項。
預設情況下,它將文件保存在**西歐 (1252)**中。每當我有任何特殊字元時,我都會使用 UTF8(儘管可能適合其他一些限制性編碼),因為它通常是最快的修復。
我不確定(從圖片中)您使用的是 SSMS,因此請確保您自己的編輯器可以選擇以不同的編碼保存文件。如果沒有,在智能編輯器中轉換文件(就像你已經在 Notepad++ 中嘗試過的那樣)通常可以工作。雖然如果您從寬編碼轉換為窄編碼然後再轉換回寬編碼(例如:從 Unicode 到 ANSI 再回到 Unicode),這可能不起作用。