Top-Themen

AppleEntwicklungHardwareInternetLinuxMicrosoftMultimediaNetzwerkeOff TopicSicherheitSonstige SystemeVirtualisierungWeiterbildungZusammenarbeit

Aktuelle Themen

Administrator.de FeedbackApache ServerAppleAssemblerAudioAusbildungAuslandBackupBasicBatch & ShellBenchmarksBibliotheken & ToolkitsBlogsCloud-DiensteClusterCMSCPU, RAM, MainboardsCSSC und C++DatenbankenDatenschutzDebianDigitiales FernsehenDNSDrucker und ScannerDSL, VDSLE-BooksE-BusinessE-MailEntwicklungErkennung und -AbwehrExchange ServerFestplatten, SSD, RaidFirewallFlatratesGoogle AndroidGrafikGrafikkarten & MonitoreGroupwareHardwareHosting & HousingHTMLHumor (lol)Hyper-VIconsIDE & EditorenInformationsdiensteInstallationInstant MessagingInternetInternet DomäneniOSISDN & AnaloganschlüsseiTunesJavaJavaScriptKiXtartKVMLAN, WAN, WirelessLinuxLinux DesktopLinux NetzwerkLinux ToolsLinux UserverwaltungLizenzierungMac OS XMicrosoftMicrosoft OfficeMikroTik RouterOSMonitoringMultimediaMultimedia & ZubehörNetzwerkeNetzwerkgrundlagenNetzwerkmanagementNetzwerkprotokolleNotebook & ZubehörNovell NetwareOff TopicOpenOffice, LibreOfficeOutlook & MailPapierkorbPascal und DelphiPeripheriegerätePerlPHPPythonRechtliche FragenRedHat, CentOS, FedoraRouter & RoutingSambaSAN, NAS, DASSchriftartenSchulung & TrainingSEOServerServer-HardwareSicherheitSicherheits-ToolsSicherheitsgrundlagenSolarisSonstige SystemeSoziale NetzwerkeSpeicherkartenStudentenjobs & PraktikumSuche ProjektpartnerSuseSwitche und HubsTipps & TricksTK-Netze & GeräteUbuntuUMTS, EDGE & GPRSUtilitiesVB for ApplicationsVerschlüsselung & ZertifikateVideo & StreamingViren und TrojanerVirtualisierungVisual StudioVmwareVoice over IPWebbrowserWebentwicklungWeiterbildungWindows 7Windows 8Windows 10Windows InstallationWindows MobileWindows NetzwerkWindows ServerWindows SystemdateienWindows ToolsWindows UpdateWindows UserverwaltungWindows VistaWindows XPXenserverXMLZusammenarbeit

SQL Server Fehler Insufficient result space to convert uniqueidentifier value to char

Anleitung Entwicklung Datenbanken

Mitglied: 16640

16640 (Level 1)

13.09.2005, aktualisiert 15:16 Uhr, 19353 Aufrufe, 2 Kommentare

Ursache für "Msg 8170, Level 16, State 2, Line 1
Insufficient result space to convert uniqueidentifier value to char."

Eine nicht sofort ins Auge springende Fehlerursache:

Beim Anlegen einer partitionierten View werden die einzelnen Datenabschnitte durch Eingrenzungen auf einer Spalte vom Typ 'uniqueidentifier' vorgenommen. Um mit den per T-SQL erzeugten dynamischen SQL-Statements die Eingrenzungen grob vorzunehmen, wurde naheliegenderweise diese Spalte mit den beginnenden Zeichen des UID verglichen, bspw. mit fogender WHERE-Bedingung:

.... where convert(varchar, UIDFeld) >= 'DDDDD' and convert(varchar, UIDFeld) < 'EEEEE' .....

Die Generierung dieser Views erfolgt ohne Fehler, aber jeder spätere Zugriff auf die View erzeugt den im Betreff genannten Fehler.

Letztlich ausgemachte Ursache ist die Konvertierung nach 'varchar'. Wenn man diesen Datentyp ersetzt durch 'char(50)', funktioniert hinterher der Zugriff auf die Daten der View fehlerfrei. Konkret auf die oben bereits verwendete WHERE-Bedingung angewendet würde diese so aussehen:

.... where convert(char(50), UIDFeld) >= 'DDDDD' and convert(char(50), UIDFeld) < 'EEEEE' .....

Um den Fehler zu reproduzieren, wird eine Tabelle mit einer 'uniqueidentifier'-Spalte benötigt. Wenn solches vorhanden ist, produziert dieses Beispiel hier den Fehler ([Quelltabelle] und [UIDFeld] natürlich mit den tatsächlichen Werten ersetzen):

01.
create  
02.
    view dbo.vw_test_8170  
03.
    as  
04.
        select  
05.
            *  
06.
        from [quelltabelle] 
07.
        where 
08.
            convert(varchar, [UIDFeld]) >= '88888' 
09.
 
10.
go  
11.
 
12.
select * from dbo.vw_test_8170
Hier noch entsprechende Screenshots dazu, einmal mit Fehler und einmal ohne. Das alles auf MS SQL Server 2000, SP3

mit Fehler:
<img src='/images/articles/2f87acce16ea13bec19d6b88464c56e4-Screenshot - 13_09_2005 , 11_28_37.jpg' align='default' hspace='0' vspace='0' border='0'>

ohne Fehler:
<img src='/images/articles/35e31f5a419f52e85f3651a057511056-Screenshot - 13_09_2005 , 11_29_28.jpg' align='default' hspace='0' vspace='0' border='0'>


dba
Mitglied: Biber
13.09.2005 um 14:01 Uhr
Thx, dba, obwohl..

Char(40) hätte auch gereicht, aber was soll der Geiz....

Eigentlich poste ich ja nur, weil ich neulich mal einen Link zum Thema IDENTIFIER gebookmarked hatte, den ich nett fand:
http://www.konfabulieren.com/2005/06/24/own-your-very-own-128-bit-uniqu ...

Biber
Bitte warten ..
Mitglied: 16640
13.09.2005 um 15:16 Uhr
Ja Biber, da hast Du wohl wahr wobei auch 36 ausreichend ist, dann gibt's gar keine Bytverschwendung mehr. Aber Du weisst sicher, wie das ist, wenn man vor dem Hackbrett sitzt und am liebsten ein paar Stücke rausbeissen würde ...

Wenn man mal die Geschichte mit solch einem armen Unique Identifier philosophisch betrachtet ... nimm Dir eine Adresstabelle mit einigen hundert bis Millionen Records und dann spielst Du Datengott und machst ein

select newid() from [tabelle]

und für jeden existierenden Satz schickst Du jetzt solch eine einmalige, auf der ganzen Welt niemals wiederkehrende ID ins Datennirwana ... das ist schon ganz schön traurig, oder?

In diesem Sinne ... angenehme Restwoche.

dba
Bitte warten ..
Ähnliche Inhalte
Datenbanken
SQL Server 2008 R2 iso (3)

Frage von Doktore77 zum Thema Datenbanken ...

Microsoft
gelöst Verbindung zu MS SQL Server 2016 nicht möglich (5)

Frage von Baitahook zum Thema Microsoft ...

Datenbanken
gelöst Daten aus Excel in MS SQL Server übernehmen (7)

Frage von Balu418xx zum Thema Datenbanken ...

Neue Wissensbeiträge
RedHat, CentOS, Fedora

Fedora, RedHat, Centos: DNS-Search Domain setzen

(10)

Tipp von Frank zum Thema RedHat, CentOS, Fedora ...

Drucker und Scanner

Samsung SL-M4025ND, firmware update und (kompatible) Tonerkassetten

(1)

Erfahrungsbericht von markus-1969 zum Thema Drucker und Scanner ...

Router & Routing

PfSense auf Supermicro Intel Xeon D-15x8 SoC Bare Bone

Tipp von Dobby zum Thema Router & Routing ...

Heiß diskutierte Inhalte
Windows 10
Windows für Privatanwender "nicht mehr handhabbar" (26)

Frage von FA-jka zum Thema Windows 10 ...

LAN, WAN, Wireless
Brauche Hilfe: Mit (schnellem) WLAN Strecke überbrücken (23)

Frage von pierrehansen zum Thema LAN, WAN, Wireless ...

Basic
Programmierung von Windows Programmen (10)

Frage von Ghost108 zum Thema Basic ...