I Text mit Apostroph eingefügt werden sollen Eg Johns in SQL Server 2005-Datenbank-TabelleWie Text mit einfachen Anführungszeichen SQL Server 2005 einzufügen
Antwort
INSERT INTO Table1 (Column1) VALUES ('John''s')
Oder Sie können eine gespeicherte Prozedur verwenden und die Parameter übergeben als -
usp_Proc1 @Column1 = 'John''s'
wenn Sie eine INSERT-Abfrage und nicht eine gespeicherte Prozedur verwenden, werden Sie das Zitat mit zwei Zitate entkommen müssen, sonst ist es ok, wenn Sie es nicht tun.
Apostroph mit einem zusätzlichen Einzel Flucht als Kirtan
wies darauf hin, Und wenn Sie eine dynamische SQL auszuführen versuchen, (das ist keine gute Idee, in erster Linie ist) über Sp_executesql dann der folgenden Code für Sie arbeiten würde
sp_executesql N'INSERT INTO SomeTable (SomeColumn) VALUES (''John''''s'')'
Die Antwort hängt wirklich davon ab, wie Sie die INSERT
tun.
Wenn Sie ein SQL wörtliche angeben, dann müssen Sie das Doppel-tick-Ansatz verwenden:
-- Direct insert
INSERT INTO Table1 (Column1) VALUES ('John''s')
-- Using a parameter, with a direct insert
DECLARE @Value varchar(50)
SET @Value = 'John''s'
INSERT INTO Table1 (Column1) VALUES (@Value)
-- Using a parameter, with dynamic SQL
DECLARE @Value varchar(50)
SET @Value = 'John''s'
EXEC sp_executesql 'INSERT INTO Table1 (Column1) VALUES (@p1)', '@p1 varchar(50)', @Value
Wenn Sie die INSERT von Code tun, verwenden Parameter:
// Sample ADO.NET
using (SqlConnection conn = new SqlConnection(connectionString)) {
conn.Open();
using (SqlCommand command = conn.CreateCommand()) {
command.CommandText = "INSERT INTO Table1 (Column1) VALUES (@Value)";
command.Parameters.AddWithValue("@Value", "John's");
command.ExecuteNonQuery();
}
}
Wenn Ihr Daten enthalten Benutzereingabe, direkt oder indirekt, USE PARAMETERS. Parameter schützen vor SQL-Injection-Angriffen. Bauen Sie niemals dynamisches SQL mit Benutzereingaben auf.
danke ... aber dieser Code wird für die dynamische Aktualisierung querry nicht funktionieren –
können Sie näher auf Ihre Anfrage geben? Parameter funktionieren in fast allen Abfragen. Ich bin neugierig, warum sie in deinem Fall nicht funktionieren. – Brannon
Dieser arbeitete für mich:
INSERT INTO [TABLE]
VALUES ('text','''test.com''', 1)
Grundsätzlich Sie das Apostroph nehmen Sie es mit zwei eingefügt werden soll und ersetzen. Wenn Sie also eine Textzeichenfolge ("Text") einfügen und einzelne Anführungszeichen hinzufügen möchten, wäre das ('' 'text' ''). Hoffe das hilft.
Diese Antwort funktioniert in SQL Server 2005, 2008, 2012.
Manchmal wird der Wert VIELE einfache Anführungszeichen hat. Anstatt ein einzelnes Zitat neben jedem einzelnen Zitat hinzuzufügen, wie oben mit 'John''s'
beschrieben. Und es gibt Beispiele, die die REPLACE
Funktion verwenden, um viele einfache Anführungszeichen in einem Wert zu behandeln.
Versuchen Sie Folgendes. Dies ist eine Update-Anweisung, aber Sie können sie auch in einer INSERT
-Anweisung verwenden.
SET QUOTED_IDENTIFIER OFF
DECLARE @s VARCHAR(1000)
SET @s = "SiteId:'1'; Rvc:'6'; Chk:'1832'; TrEmp:'150'; WsId:'81'; TtlDue:'-9.40'; TtlDsc:'0'; TtlSvc:'0'; TtlTax:'-0.88'; TtlPay:'0'; TipAmt:'0.00'; SvcSeq:'09'; ReTx:'N'; TraceId:'160110124347N091832';"
UPDATE TransactionPaymentPrompt
set PromptData = @s
from TransactionPaymentPrompt tpp with (nolock)
where tpp.TransactionID = '106627343'
Sie gefragt, wie eine Apostrophe character (')
in SQL Server zu entkommen. Alle obigen Antworten erklären dies ausgezeichnet.
Je nach Situation kann jedoch auch die Right single quotation mark character (’)
geeignet sein.
(keine Escape-Zeichen erforderlich)
-- Direct insert
INSERT INTO Table1 (Column1) VALUES ('John’s')
• Apostrophe (U + 0027)
• Rechts Apostroph (U + 2019)
- 1. SQL Server Enterprise Manager 2005 mit SQL Server 2005 Express
- 2. SAS Makro Variable Verkettung mit Text mit einfachen Anführungszeichen
- 3. SQL CommandText Confusion mit doppelten Anführungszeichen und einfachen Anführungszeichen
- 4. Sortierproblem - SQL Server 2005
- 5. SQL Server 2005 schneidet Zeichenfolgen in doppelten Anführungszeichen ab
- 6. SQL-Abfrage mit einfachen Anführungszeichen mit Spring jdbctemplate
- 7. Sublime Text und Clojure: keine einfachen Anführungszeichen
- 8. Wie meine Abfrageausgabe mit einfachen Anführungszeichen wickeln
- 9. wie für SQL Server 2005
- 10. Wie in SQL Server-Dezimalspalte einzufügen?
- 11. SQL Server 2005-Failovercluster mit einem Server?
- 12. Ausgabeparameter SQL Server 2005
- 13. SQL Server 2005 - Triggerschleife?
- 14. Sql Server 2005 Verbindungsprotokoll
- 15. SQL Server 2005 & Antivirensoftware
- 16. SQL Server 2005-Replikation
- 17. SQL Server 2005 Fehler
- 18. SQL Server 2005 xp_cmdshell
- 19. SQL Server 2005 Datumslokalisierung
- 20. SQL Server 2005 Quellcodeverwaltung
- 21. SQL Server 2008 zu SQL Server 2005
- 22. SQL Server 2005-Summierungsabfrage
- 23. SQL Server 2005-Drop-Spalte mit Einschränkungen
- 24. Temporäre SQL Server 2005-Tabellen
- 25. SQL Server 2005 Deadlock mit Nonclustered-Index
- 26. echo JavaScript mit einfachen Anführungszeichen
- 27. SQL Server 2005, Schrumpfende Replikationsdatenbank
- 28. SQL Server 2005 Deadlock Situation
- 29. Abfragestatistiken für SQL Server 2005
- 30. SQL Server 2005 Kollation Problem
aber das Hinzufügen eines anderen einfachen Angebotes mit einem bestehenden Problem verursacht beim Speichern der Daten in eine andere Tabelle zB: in Tabelle1 einfügen (wählen * aus Tabelle2) –