Announcement

Collapse
No announcement yet.

Case Sensitive vs. Sortierung

Collapse
X
  • Filter
  • Time
  • Show
Clear All
new posts

  • Case Sensitive vs. Sortierung

    Hallo!

    Die Sortierung kann ja auf Server, Datenbank und Feld-Ebene definiert werden. Man ist also in der Lage die Sortierung für eine bestimmte DB bzw. Spalte abweichend zur Server-Sortierung zu definieren. Das funktioniert auch soweit ganz gut.

    Gilt dies auch für die Unterscheidung von Groß-/Kleinschreibung?

    Ich habe das Problem, dass in einer DB in der die Sortierung NICHT Case Sensitive eingestellt ist die gesetzte Case Sensitive Option des Servers greift und die Kompilierung bzw. Ausführung von Stored Procedures viele Fehler wirft, weil die Variaben verschieden (mal groß mal klein) geschrieben sind.

    z.B. Fehler: "Die "@t_doznr"-Skalarvariable muss deklariert werden."

    Kann mir bitte jemand nen Tipp geben!

    Gruß

    Anton

  • #2
    Hallo Anton,

    eine ganze Serverinstanz habe ich noch nie mit Case-Sensitive konfiguriert, nur eine einzelne Datenbank.
    Da ist es dann halt so, das dann auch die Systemtabelle Case-Sensitive sind und somit auch alle Objekt-Namen (weil die halt in den sys-Tables stehen).
    Mit dem Ergebnis: Man muss bei allen Objekt wie z.B. Tabellen-/Feldnamen in SELECT Statements auf die Groß-Kleinschreibung achten, sonst kommt die gleiche Fehlermeldung wie bei Dir.

    Das bei SP für den Code die Server-Einstellung verwendet wird, wundert mich, ist aber durchaus denke.
    Tritt das den in allen DBs auf oder nur in einer? Auch mal mit "Northwind" / "AdventureWorks" probiert?

    Für mich habe ich jedenfalls die Erfahrung gemacht, das man solche Settings auf Feldebene hält, ist zwar aufwendiger, in der Handhabung aber einfacher.
    Olaf Helper

    <Blog> <Xing>
    * cogito ergo sum * errare humanum est * quote erat demonstrandum *
    Wenn ich denke, ist das ein Fehler und das beweise ich täglich

    Comment


    • #3
      Hallo Olaf!

      Danke für die Hinweise! Ich hab jetzt folgendes in Erfahrung gebracht!

      Wenn Case Sensitive für den Server aktiviert und für die DB deaktiviert ist, ist das Verhalten für T-SQL-Abfragen richtig und Groß-Kleinschreibung wird für Tabellen- und Feldnamen nicht beachtet! Soweit so gut!

      Nur bei Variablen in Stored Proceduren und Functions wird diese Einstellung nicht beachtet!!! Hier wird wohl die Einstellung in der DB übergangen und die Server-Einstellung verwendet... *urgh!

      Hat noch jemand ne Idee?

      Comment


      • #4
        Auszug aus der Online Hilfe, Thema "Sortierung des Bezeichners"

        ...Aus diesem Grund befinden sich die Bezeichner von Variablen, GOTO-Marken und temporären Tabellen in der Standardsortierung der Instanz
        Olaf Helper

        <Blog> <Xing>
        * cogito ergo sum * errare humanum est * quote erat demonstrandum *
        Wenn ich denke, ist das ein Fehler und das beweise ich täglich

        Comment


        • #5
          In der Online-Hilfe (MSDN) hatte ich auch schon gesucht. Nur diesen Artikel hab ich wohl übersehen! Danke!!!

          Gibt es evtl. ein Tool um im kompletten T-SQL-Code auf die Variablen @ ein lowercase zu machen???

          Comment


          • #6
            Mit Tastenkombination <Strg> <A> alles markieren

            Wenn Du es im Query Analyzer entwirfst
            <Strg><Umsch><L> für lower=Kleinschrift
            <Strg><Umsch><U> für upper=Großschrift


            Wenn Du Management Studio entwirfst:
            <Strg><U> für lower=Kleinschrift
            <Strg><Umsch><U> für upper=Großschrift

            Betrifft dann aber alles.

            Ansonsten: Suchen & Ersetzen, das kann Case Sensitive und Insenitive erfolgen

            Wenn Du nur Einzeldateien mit Deinen SQL Statements hast, kannst Du auch von einer vorhandenen DB ein komplettes SQL Script erstellen lassen und dann Suchen & Ersetzen anwenden
            Olaf Helper

            <Blog> <Xing>
            * cogito ergo sum * errare humanum est * quote erat demonstrandum *
            Wenn ich denke, ist das ein Fehler und das beweise ich täglich

            Comment

            Working...
            X