0
我正在使用.Net的自定義庫訪問sql服務器。N'INSERT INTO與INSERT INTO
該庫正在執行的服務器此查詢:
exec sp_executesql N'INSERT INTO Testable (testcolumn1, testcolumn2)
VALUES (@const795, @const796) ', N'@const795 int, @const796 nvarchar(50)',
@const795=1803496, @const796='ÄÅÉæÆôöòÇ Münchenß дие Таль'
結果:
Column 1 : 1803496
Column 2 : ÄÅÉæÆôöòÇ Münchenß ??? ????
如果我執行手動此查詢:
INSERT INTO Testable (testcolumn1, testcolumn2)
VALUES (1803496,N'ÄÅÉæÆôöòÇ Münchenß дие Таль')
結果:
Column 1 : 1803496
Column 2 : ÄÅÉæÆôöòÇ Münchenß дие Таль
N'INSERT INTO
不應該將參數存儲在UniCode編碼中?爲什麼第二個查詢是保存「диеТаль」好,第一個查詢不是?
列2是nvarchar類型,列的排序規則是Latin1_General_CI_AS。
另外我還有一個問題,因爲該庫確實正在發送:
exec sp_executesql N'INSERT INTO Testable (testcolumn1, testcolumn2)
VALUES (@const795, @const796) ',N'@const795 int,@const796 nvarchar(50)',
@const795=1803496, @const796= 'ÄÅÉæÆôöòÇ Münchenß ??? ????'
隨着問號而非俄語字符。我知道這是因爲我使用SQL分析器來「嗅探」來自庫的查詢。
調試庫中的查詢我可以看到這個「диеТаль」字符的正確值,直到將查詢發送到數據庫。但是sql profiler得到「???」人物·爲什麼會發生這種情況?
謝謝格拉克斯。 –