Problema de comillas en parámetros de Transact SQL


Muchas personas cuando tratan de usar el comando execute de SQL Server para crear sentencias dinámicas con variables tienen el problema de las comillas.

Cuando uno desea incluir un dato que ya incluye comillas dentro de comillas, hay que pasarle doble comilla para que T-SQL se de cuenta lo que queremos.

Les paso un ejemplo:

create procedure cprocedure
@nombre varchar(50),@contrasena varchar(50)
as
execute('CREATE LOGIN '+@nombre+' with password=''@contrasena''')

En este ejemplo se está creando un login y se le pasa de parámetros el nombre y la contrasena. La palabra contrasena y incluía comillas antes. Dentro del comando execute, es necesario agregar doble comilla para que funcione.

Comentarios

Entradas populares de este blog

The Deep Sea: una web interactiva para explorar las profundidades el mar y descubrir las extrañas criaturas que viven en él

Detectar el usuario de Windows utilizando C#

Lo nuevo de SQL Server 2008 respecto a SQL Server 2005