Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Microsoft SQL Server Новый топик    Ответить
 Портиться кодировка при выполнении скрипта при помощи sqlcmd  [new]
непонимашка
Member

Откуда: Санкт-Питербург
Сообщений: 31
Есть таблица в БД
USE [working]
GO

CREATE TABLE [dbo].[buildings_mssql]( [sys] [bigint] NOT NULL, [city] [nvarchar](max) NULL, [street] [nvarchar](max) NULL,	[num] [nvarchar](55) NULL,	[geom] [geometry] NULL,	[Adres] [nvarchar](500) NULL, [Name] [nvarchar](3000) NULL,	[Elevation] [nvarchar](50) NULL,	[type] [nvarchar](1000) NULL,	[nazn] [nvarchar](1000) NULL,	[district] [nvarchar](500) NULL,	[city2g] [nvarchar](300) NULL,	[source] [nvarchar](10) NULL,	[id]  AS ([sys]),	[nist] [int] NULL,	[idbo] [int] NULL,
PRIMARY KEY CLUSTERED ( [sys] ASC )WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY]
) ON [PRIMARY] TEXTIMAGE_ON [PRIMARY]
GO


Есть задача заполнить её из скрипта. Вот, например, такой скрипт
begin tran
truncate table [working].[dbo].[buildings_mssql]
commit
go

begin tran

insert into [working].[dbo].[buildings_mssql] (  [Adres], [city], [city2g], [district], [Elevation], [geom], [Name], [nazn], [num], [source], [street], [sys],  [type]
) values ( 
  'Санкт-Петербург, улица Подвойского,д.50 к1',
  'Санкт-Петербург',
  'Санкт-Петербург',
  'Невский',
  '9',
  geometry::STGeomFromText('POLYGON((30.4998544801568 59.9204138699401,30.5001186746819 59.9204820809014,30.5002411150551 59.9203599764279,30.5001638599407 59.9203418768327,30.5002872884607 59.9202265704737,30.5004243713731 59.9202615991562,30.5005533694479 59.9201423754172,30.5004713532624 59.9201206737691,30.5006544299173 59.9199390007019,30.5004060457413 59.9198795684045,30.5002876477868 59.9200028002541,30.5003459484488 59.9200186938426,30.5001960196278 59.9201720913439,30.5000625299766 59.9201389986057,30.499939011625 59.920254575413,30.5000026123472 59.920270378833,30.4998544801568 59.9204138699401))',4326),
  null,
  'Жилой дом с административными помещениями',
  '50 к1',
  'osm',
  'улица Подвойского',
  71699,
  'Жилые дома'
);

commit
go

Пытаюсь выполнить его с помощью sqlcmd
sqlcmd -S 127.0.0.1 -U sa -P "<hjy[jkbnby5" -e -f 65001 -i d:\trash\bl2.sql

В консоль выводит вроде даже все нормально
sqlcmd -S 127.0.0.1 -U sa -P "<hjy[jkbnby5" -e -fi:65001,o:1251 -R -i d:\trash\bl2.sql
begin tran
truncate table [working].[dbo].[buildings_mssql]
commit


begin tran

insert into [working].[dbo].[buildings_mssql] (
[Adres],
[city],
[city2g],
[district],
[Elevation],
[geom],
[Name],
[nazn],
[num],
[source],
[street],
[sys],
[type]
) values (
'Санкт-Петербург, улица Подвойского,д.50 к1',
'Санкт-Петербург',
'Санкт-Петербург',
'Невский',
'9',
geometry::STGeomFromText('POLYGON((30.4998544801568 59.9204138699401,30.5001186746819 59.9204820809014,30.5002411150551 59.9203599764279,30.5001638599407 59.9203418768327,30.5002872884607 59.9202265704737,30.5004243713731 59.9202615991562,30.5005533694479 59.9201423754172,30.5004713532624 59.9201206737691,30.5006544299173 59.9199390007019,30.5004060457413 59.9198795684045,30.5002876477868 59.9200028002541,30.5003459484488 59.9200186938426,30.5001960196278 59.9201720913439,30.5000625299766 59.9201389986057,30.499939011625 59.920254575413,30.5000026123472 59.920270378833,30.4998544801568 59.9204138699401))',4326),
null,
'Жилой дом с административными помещениями',
'50 к1',
'osm',
'улица Подвойского',
71699,
'Жилые дома'
);

commit


(1 rows affected)

И вот что получается в базе
syscitystreetnumgeomAdresNameElevationtypenazndistrictcity2gsourceidnistidbo
71699?????-?????????????? ???????????50 ?1some geom?????-????????? ????? ????????????.50 ?1NULL9????? ????????? ??? ? ????????????????? ???????????????????????-?????????osm71699NULLNULL

Но это все происходит, когда пытаешся выполнить на сервере
Конфигурация сервера:
Windows Server 2016 Standart x64,
Microsoft SQL Server 2017 (RTM) - 14.0.1000.169 (X64) Aug 22 2017 7:04:49 Copyright (C) 2017 Microsoft Corporation Express Edition (64-bit) on Windows Server 2016 Standard 10.0 <X64> (Build 14393: ) (Hypervisor)
результат chcp из консоли: Текущая кодовая страница: 866

Когда пытаюсь сделать то же самое на своей рабочей станции, то все нормально
Конфигурация рабочего места:
Windows 10 Pro x 64,
Microsoft SQL Server 2017 (RTM) - 14.0.1000.169 (X64) Aug 22 2017 17:04:49 Copyright (C) 2017 Microsoft Corporation Enterprise Edition (64-bit) on Windows 10 Pro 10.0 <X64> (Build 17134: ) (Hypervisor)
результат chcp из консоли: Текущая кодовая страница: 866

К сообщению приложен файл (bl2.sql - 1Kb) cкачать
14 авг 18, 13:59    [21641853]     Ответить | Цитировать Сообщить модератору
 Re: Портиться кодировка при выполнении скрипта при помощи sqlcmd  [new]
Гавриленко Сергей Алексеевич
Member

Откуда: Moscow
Сообщений: 36694
insert into [working].[dbo].[buildings_mssql] (  [Adres], [city], [city2g], [district], [Elevation], [geom], [Name], [nazn], [num], [source], [street], [sys],  [type]
) values ( 
  N'Санкт-Петербург, улица Подвойского,д.50 к1',
  N'Санкт-Петербург',
  N'Санкт-Петербург',
  N'Невский',
  N'9',
  geometry::STGeomFromText('POLYGON((30.4998544801568 59.9204138699401,30.5001186746819 59.9204820809014,30.5002411150551 59.9203599764279,30.5001638599407 59.9203418768327,30.5002872884607 59.9202265704737,30.5004243713731 59.9202615991562,30.5005533694479 59.9201423754172,30.5004713532624 59.9201206737691,30.5006544299173 59.9199390007019,30.5004060457413 59.9198795684045,30.5002876477868 59.9200028002541,30.5003459484488 59.9200186938426,30.5001960196278 59.9201720913439,30.5000625299766 59.9201389986057,30.499939011625 59.920254575413,30.5000026123472 59.920270378833,30.4998544801568 59.9204138699401))',4326),
  null,
  N'Жилой дом с административными помещениями',
  N'50 к1',
  N'osm',
  N'улица Подвойского',
  71699,
  N'Жилые дома'
);
14 авг 18, 14:01    [21641858]     Ответить | Цитировать Сообщить модератору
 Re: Портиться кодировка при выполнении скрипта при помощи sqlcmd  [new]
непонимашка
Member

Откуда: Санкт-Питербург
Сообщений: 31
Гавриленко Сергей Алексеевич, Ой, сработало!!!
Спасибо!!!
14 авг 18, 14:16    [21641890]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить