Sqlserver
 sql >> Datenbank >  >> RDS >> Sqlserver

So fügen Sie eine Zeichenfolge ein, die einfache oder doppelte Anführungszeichen enthält

Wenn Sie korrekt parametrisierte Anweisungen verwenden , brauchen Sie sich keine Sorgen zu machen. Etwas in der Art (obwohl bitte keine C#-Techniken von mir lernen):

string sql = @"UPDATE dbo.table SET col = @p1 WHERE ...;";
string myString = @"hello'foo""bar";

SqlCommand cmd = new SqlCommand(sql, conn);
cmd.CommandType = CommandType.Text;
SqlParameter p1 = cmd.Parameters.AddWithValue("@p1", myString);
cmd.ExecuteNonQuery();

(Obwohl Sie wirklich gespeicherte Prozeduren verwenden sollten.)

Wenn Sie Ihre Strings manuell erstellen (was Sie wirklich, wirklich, wirklich nicht tun sollten), müssen Sie String-Trennzeichen maskieren, indem Sie sie verdoppeln:

INSERT dbo.tbl(col) VALUES('hello''foo"bar');