Ausgabe: Ich habe ein Verfahren (vereinfacht), von .NET-Anwendung erstellt:Temp Verfahren vermasselt Sortierungs
create procedure #SaveData
@InValue varchar(128)
as
begin
insert into Production.TargetTable (PREFIX_Value) select @InValue
end
Problem ist, die Datenbank verwendet SQL_SLOVAK_CP1250_CI_AS Sortierung. TempDB verwendet Standard SQL_Latin1_General_CP1_CI_AS Kollation.
Problem vereinfacht:
-- this doesnt work, returns RTC
create procedure #SaveData
@InValue varchar(128)
as
begin
select @InValue
end
-- this doesnt work, returns RTC
create procedure #SaveData
@InValue varchar(128)
as
begin
select @InValue collate SQL_SLOVAK_CP1250_CI_AS
end
-- this does work, returns ŘŤČ
create procedure SaveData
@InValue varchar(128)
as
begin
select @InValue
end
Welche, dass statt für anstelle von Testzeichenfolge verursacht rtC, RTC gespeichert wird. Wenn ich die # aus dem Namen der Prozedur entfernen und nicht als temporäre Prozedur erstellen, funktioniert alles.
Jetzt, ein Update gefunden, um zu arbeiten, ist es, den Param-Typ von Varchar zu Nvarchar zu ändern. Aber das wäre eine Menge Arbeit (viele verschiedene Verfahren). Gibt es einen globalen Ansatz, der funktionieren könnte?
Vielen Dank und einen schönen Tag
Vielleicht sollten Sie Ihre Server-Sortierung zu SQL_SLOVAK_CP1250_CI_AS ändern? –
@DenisRubashkin wird versuchen, aber scheint wie eine Nuke-Option. Könnten auch andere Datenbanken sein, die gleichzeitig auf dem Server mit unterschiedlichen Sortierungen laufen. –