복붙노트

[SQL] 단일 인용 SQL 서버 2005 텍스트를 삽입하는 방법

SQL

단일 인용 SQL 서버 2005 텍스트를 삽입하는 방법

나는 작은 따옴표와 텍스트를 삽입 할 예 존은 SQL 서버 2005 데이터베이스에서 테이블의

해결법

  1. ==============================

    1.Kirtan는 지적 추가 하나와 작은 따옴표를 탈출 당신이 다음 sp_executesql을 통해 (처음부터 좋은 생각이 아니다)을 동적 SQL을 실행하려는 경우와 코드 아래는 당신을 위해 일 것

    Kirtan는 지적 추가 하나와 작은 따옴표를 탈출 당신이 다음 sp_executesql을 통해 (처음부터 좋은 생각이 아니다)을 동적 SQL을 실행하려는 경우와 코드 아래는 당신을 위해 일 것

    sp_executesql N'INSERT INTO SomeTable (SomeColumn) VALUES (''John''''s'')'
    
  2. ==============================

    2.대답은 정말 당신이 INSERT를하고있는 방법에 따라 달라집니다.

    대답은 정말 당신이 INSERT를하고있는 방법에 따라 달라집니다.

    당신은 문자 그대로 다음 SQL을 지정하는 경우에는 이중 틱 방법을 사용합니다 :

    -- 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
    

    당신이 코드에서 INSERT를 수행하는 경우, 매개 변수를 사용 :

    // 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();
        }
    }
    

    데이터는 사용자가 입력, 직접 또는 간접적으로 사용하는 매개 변수를 포함합니다. 매개 변수는 SQL 주입 공격으로부터 보호합니다. 절대로 지금까지 사용자 입력 동적 SQL을 구축합니다.

  3. ==============================

    3.이것은 나를 위해 일한 :

    이것은 나를 위해 일한 :

      INSERT INTO [TABLE]
      VALUES ('text','''test.com''', 1)
    

    기본적으로, 당신은 당신이 삽입하고 두로 교체 할 작은 따옴표를 취할. 당신은 텍스트 문자열 ( '텍스트')를 삽입하고 주위에 작은 따옴표를 추가하려는 경우 그래서, 그것은 ( '' '텍스트' '') 일 것이다. 도움이 되었기를 바랍니다.

  4. ==============================

    4.

    INSERT INTO Table1 (Column1) VALUES ('John''s')
    

    또는 당신은 저장 프로 시저를 사용하고 매개 변수를 전달할 수 있습니다 -

    usp_Proc1 @Column1 = 'John''s'
    

    당신이 INSERT 쿼리가 아닌 저장 프로 시저를 사용하는 경우, 당신은 당신이 그것을하지 않으면, 두 따옴표와 함께 다른 사람의 확인을 인용 탈출해야합니다.

  5. ==============================

    5.이 답변은 SQL 서버 2005, 2008, 2012 년에 작동합니다.

    이 답변은 SQL 서버 2005, 2008, 2012 년에 작동합니다.

    때때로 값은 많은 작은 따옴표가있다. 오히려 다음 '존'의 '상술 한 바와 같이 각 따옴표에 작은 따옴표를 추가보다. 그리고 값의 많은 작은 따옴표를 처리하기 위해 REPLACE 함수를 사용하는 예제가있다.

    다음을 시도하십시오. 이 업데이트 문입니다하지만 당신은 INSERT 문에서 사용할뿐만 아니라 수 있습니다.

    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'
    
  6. ==============================

    6.당신은 SQL 서버에서 아포스트로피 문자 ( ')를 탈출하는 방법을 물었다. 모든 답변은 위의 것을 설명하는 훌륭한 일을하고 있어요.

    당신은 SQL 서버에서 아포스트로피 문자 ( ')를 탈출하는 방법을 물었다. 모든 답변은 위의 것을 설명하는 훌륭한 일을하고 있어요.

    그러나, 상황에 따라, 오른쪽 작은 따옴표 문자 ( ') 적합 할 수 있습니다.

    (없음 이스케이프 문자가 필요)

    -- Direct insert
    INSERT INTO Table1 (Column1) VALUES ('John’s')
    

    • 아포스트로피 (+ 0027 U)

    위키 백과에 아포스트로피를 ASCII

    • 오른쪽 작은 따옴표 (+ 2019 U)

    유니 코드를 마우스 오른쪽 위키 백과에 작은 따옴표

  7. from https://stackoverflow.com/questions/775687/how-to-insert-text-with-single-quotation-sql-server-2005 by cc-by-sa and MIT license