it-swarm.com.de

Speichern von einfachen Anführungszeichen in den Varchar-Variablen SQL Server 2008

Ich habe mich gefragt, ob es eine Möglichkeit gibt, einzelne Anführungszeichen in SQL Server 2008 zu speichern. Ich baue mehrere Berichte auf, und alle diese Berichte sind identisch, außer dass sie sich nur in den Codes unterscheiden, für die ich mich auswähle. Ein Bericht verwendet beispielsweise die Codes "abc", "def", "ghi" und ein anderer Bericht verwendet die Codes "jkl", "mno", "pqr". Ich habe überlegt, die Anzahl der gespeicherten Prozeduren, die ich erstellen muss, zu reduzieren. Ich könnte einen Parameter für den Bericht festlegen, um zu entscheiden, welche Art von Bericht ausgeführt werden soll. Davon ausgehend würde ich die richtigen Codes verwenden. Also wollte ich diese Codes in einer Varchar-Variablen speichern. Unten ist die Funktionalität, auf die ich gehofft hatte:

DECLARE @codes1 varchar, @codes2 varchar
SET @codes1 = ''abc', 'def', 'ghi''
SET @codes2 = ''jkl', 'mno', 'pqr''

Dann wollte ich die richtige varchar-Variable verwenden, basierend auf dem vom Benutzer ausgewählten Parameter. Das einzige Problem ist das Setzen der Variablen, da die Zeichenfolge einfache Anführungszeichen enthält (die Zeichenfolge wird in einer SQL-Anweisung 'IN' verwendet, dies ist der Grund für das Vorhandensein der einzelnen Anführungszeichen).

12
Eric R.

So was. Ja, Oded ist richtig. Die richtige Terminologie dafür ist "Flucht". Sie können ein einzelnes Anführungszeichen ' durch eine Verdoppelung '' ersetzen.

DECLARE @codes1 varchar(50), @codes2 varchar(50)
SET @codes1 = '''abc'', ''def'', ''ghi'''
SET @codes2 = '''jkl'', ''mno'', ''pqr'''
21
John Hartsock

Vermeiden Sie hartcodierte Werte. Erstellen Sie eine Tabelle, in der diese Werte zusammen mit einer Gruppierung gespeichert werden.

Table CodeGroups
GroupNumber | Codes
       1    | abc
       1    | def
       1    | ghi
       2    | kkl
       2    | mno
       2    | pqr

Auf diese Weise muss der Benutzer nur GroupNumber = 1 auswählen

Sie verknüpfen die CodeGroups-Tabelle mit den Codezeichenfolgen mit der Tabelle. Um einen weiteren Code hinzuzufügen, müssen Sie nur einen Eintrag in dieser Tabelle vornehmen und dieser eine Gruppennummer zuweisen.

0
JeffO

Vermeiden Sie das Problem eines einfachen Zitats, indem Sie es einfach verdoppeln.

Wert Varchar2 (10): = '' abc ''; --- Sie werden Fehler bekommen.

Wert Varchar (10): = '' 'abc' ''; --- Lösen Sie Ihr Problem.

0
Ahishesh
                            int varId = "1";
                            String varItem = "Google's root";

                            String strSQL = "INSERT INTO table("
                                            + "id,"
                                            + "item"
                                            +")" 
                                            + "VALUES('" + varId 
                                            + "', '" + varItem
                                            + "')";
0
law-developer