none
Problemas con Comillas simples RRS feed

  • Pregunta

  • Saludos quisiera saber como puedo introducir una comilla simple en un campo de una tabla SQL

    Osea quiero insertar 'Loui's'

    como lo hago?

    gracias de antemano


    try { Aprender C#; return Aprender C#; } catch { Jamas me Rendire null; } finally { Lo hare; }
    lunes, 4 de julio de 2011 19:36

Respuestas

Todas las respuestas

  • Usa doble comilla:

    'Loui''s'


    MVP MCT MCTS Daniel Calbimonte

    http://elpaladintecnologico.blogspot.com
    lunes, 4 de julio de 2011 19:42
  • Hola.

    Así:

    'Loui''s'
    



    Alberto López Grande
    SQL Server MVP
    Visita mi blog en http://qwalgrande.blogspot.es/ Sígueme en twitter en http://twitter.com/qwalgrande

    lunes, 4 de julio de 2011 19:42
    Moderador
  • ok perfecto

     

    tengo otro caso necesito introducir querys en una tabla para reusarlos en la aplicacion por Ejemplo en una tabla de querys

    " SELECT * FROM Cliente WHERE NOMBRE='JOSE' "

     

    necesito guardar esto en una tabla como lo hago


    try { Aprender C#; return Aprender C#; } catch { Jamas me Rendire null; } finally { Lo hare; }
    lunes, 4 de julio de 2011 21:01
  • Nunca se hace eso que te han pedido (guardar queries dentro de una tabla).

    Lo que se hace es crear vistas. Lo que puedes hacer es crear una aplicación que crea vistas, ya sea manual o dinámicamente.

    Las vistas tienen lo que tu necesitas (consultas almacenadas dentro de la base de datos, pero no dentro de la tabla).

    Ahora va a surgir la pregunta. Y cómo creo una vista ?.

    Acá te va la respuesta:

    http://msdn.microsoft.com/es-es/library/ms187956.aspx

     

    Ah, esta es otra pregunta. Debería cerrar esta pregunta que era de las comillas y abrir otra.


    MVP MCT MCTS Daniel Calbimonte

    http://elpaladintecnologico.blogspot.com
    • Propuesto como respuesta dani671MVP lunes, 4 de julio de 2011 21:09
    lunes, 4 de julio de 2011 21:09
  • Hola.

    Dado que a mí las vistas no me gustan, y además tampoco te iban a servir para lo que sospecho que quieres hacer (no creo que crear una vista para cada cliente sea ni mucho menos una solución), y si bien lo que pretendes hacer guardando consultas en una tabla es incluso peor, porque te avoca al sql dinámico, cabe preguntar qué es lo que necesitas cubrir, qué funcionalidad te requiere almacenar sentencias SQL en una tabla para luego ejecutarlas. ¿Puedes darnos más detalles?

    Sobre la cuestión puramente teórica, basta con que, en general, pongas dos comillas simples en lugar de una en cada sitio:

    SELECT * FROM Cliente WHERE NOMBRE='JOSE'
    
    'SELECT * FROM Cliente WHERE NOMBRE=''JOSE''' --> al final son 3
    

    Por favor, danos los detalles solicitados sobre la funcionalidad y vemos qué podemos sugerirte.


    Alberto López Grande
    SQL Server MVP
    Visita mi blog en http://qwalgrande.blogspot.es/ Sígueme en twitter en http://twitter.com/qwalgrande

    martes, 5 de julio de 2011 6:42
    Moderador
  • No, si vas a guardar el query, al menos hazlo de forma parameterizada. De esa forma tendras mas chances de reusar planes de ejecucion, ademas de no tener que lidear con apostrofes embebidos, y preparar mejos tu codigo para evitar injeccion de codigo SQL.

    Aqui tienes un ejemplo. Queda de tu parte adicionar tratamiento de errores, revisar las sentencias contra injeccion de codigo SQL, etc.

    USE Northwind;
    GO
    DECLARE @T TABLE (
    sk int NOT NULL IDENTITY(1, 1) PRIMARY KEY,
    stmt nvarchar(MAX) NOT NULL,
    params nvarchar(MAX) NULL
    );
    
    INSERT INTO @T(stmt, params)
    VALUES (N'select customerid, companyname from dbo.customers where customerid = @customerid', N'@customerid nchar(5)');
    
    DECLARE @stmt nvarchar(MAX);
    DECLARE @params nvarchar(MAX);
    
    SELECT
    	@stmt = stmt,
    	@params = params
    FROM
    	@T
    WHERE
    	sk = 1;
    	
    SELECT @stmt AS [stmt], @params AS [params];
    
    EXEC sp_executesql @stmt, @params, N'ALFKI';
    GO
    

     

     


    AMB

    Some guidelines for posting questions...

    martes, 5 de julio de 2011 12:33
  • No me agradan ni las soluciones de Hunchback ni de Qwalgrande.

    Pero como dijo Qwalgrande. Exactamente que necesitas ?.

    Creo que es mejor darle acceso a tu aplicación a Report Services para crear reportes dinámicos de tus tablas. Pero por ningún motivo recomiendo guardar consultas dentro de tablas. 


    MVP MCT MCTS Daniel Calbimonte

    http://elpaladintecnologico.blogspot.com
    • Propuesto como respuesta dani671MVP martes, 5 de julio de 2011 13:34
    martes, 5 de julio de 2011 13:34
  • Hola,

    Creo que esto servirá;

    --JOSH'S HOUSE

    SELECT 'JOSH'+''''+'S HOUSE'


    Estudiante de Informatica

    viernes, 1 de agosto de 2014 5:07
  • @Alberto,

    >> Dado que a mí las vistas no me gustan <<

    Ya sé que no tiene nada que ver con la pregunta original.

    ¿Podrías decirnos por qué no te gustan las vistas? ¿Y qué alternativa propones?

    Resulta que para nosotros (nuestra empresa) son fundamentales y muy útiles. La mayoría de las consultas que nuestras aplicaciones hacen a la base de datos se basan en vistas.


    EntityLite: A Lightweight, Database First, Micro ORM

    lunes, 4 de agosto de 2014 16:07
  • Puedes utilizar una variable de tipo varchar(#) asignarle el contenido que deseas que sea registrado y almacenarlo en la relación.

    Ejemplo:

    DECLARE @nombre varchar(30;

    SET @nombre = "Loui's";

    INSERT INTO nom_table nombre value @nombre;

    miércoles, 30 de mayo de 2018 4:07
  • Estimado Luis, necesito ejecutar instrucciones select con cláusula like y el campo de referencia incluye una comilla en el texto, ejemplo: JUL'18

    Cómo resolverlo, gracias

    miércoles, 28 de noviembre de 2018 14:36
  • insert #tmp (nombre)
    select '''' + 'Lois' + ''''

    miércoles, 28 de noviembre de 2018 23:16