2017-08-13 4 views
1

Iきた私は、トルコ語の文字が英語で表示されているテーブルを見たとき、私は、動的SQLクエリを使用していトルコの文字はデシベルで示されていない、動的SQLクエリ

Turksihのキャラクターについてです問題チャーターなど 's'の代わりに 's'が見られます。 動的クエリを使用していないときは、何の問題もありません。

しかし、動的クエリを使用する必要があります。私のクエリは次のとおりです。あなたの変数はVARCHAR()として設定されている

1):

DECLARE @s VARCHAR(10) = 'ş'; 
SELECT @s; 
-- s 

declare @sql nvarchar(max) 
SET @Sql = concat('insert into ewrim.',... 
SELECT @sql; 

可能なシナリオ:あなたは、SQLクエリを表示すべき全ての

declare @sql nvarchar(max) 
SET @Sql = concat('insert into ewrim.', QUOTENAME(@Tc), 
    '(', QUOTENAME(@sutunadi1),',',QUOTENAME(@sutunadi2) ,', gun, ay, yil, saat, dakika, islem) ' 
     ,'VALUES (' , @ilk_agirlik,',' , @son_agirlik ,',',convert(varchar(2),day(GETDATE())) ,',',convert(varchar(2),month(GETDATE())) ,',' , convert(varchar(4),year(GETDATE())) ,',' , convert(varchar(2),datepart(hh,GETDATE())) ,',' , convert(varchar(2),datepart(mi,GETDATE())) ,',' , char(39), @islem,char(39) ,')') 
EXECUTE sp_executesql @Sql 

答えて

2

ファースト

DECLARE @s2 NVARCHAR(10) = N'ş'; 
SELECT @s2; 
-- ş 

Rextester Demo

2)表中のあなたの列は、特定の文字を格納することはできません:

DECLARE @s2 NVARCHAR(10) = N'ş'; 

DECLARE @t TABLE (col VARCHAR(10)); -- it depends on locale 
INSERT INTO @t(col) VALUES (@s2); 

SELECT * FROM @t; 
-- s 

Rextester Demo2

+0

ありがとう、あなたの最初の提案はしてきました:) –

関連する問題