EDITAR: la creación función faltaba, lo siento por esoCómo verificar la existencia de un objeto de servidor sql y soltarlo?
Tengo una petición T-SQL que va:
DECLARE @IsSomething bit
SET @IsSomething = 0
IF /some tests/ SET @IsSomething = 1
EXEC('
CREATE FUNCTION IsSomething()
RETURNS bit
AS
BEGIN
RETURN ' + @IsSomething + '
END')
Por supuesto, si lo ejecuto dos veces consigo
There is already an object named 'IsSomething ' in the database.
¿Cómo puedo hacer algo como esto:
IF EXIST @IsSomething DESTROY @IsSomething // (Pseudo bad code)
Si declaro @IsSomething dos veces, obtengo: 'El nombre de variable' @IsSomething 'ya ha sido declarado. Los nombres de las variables deben ser únicos dentro de un lote de consulta o un procedimiento almacenado. ' ¿Ignoraste la condición/respuesta solo como un ejemplo? Si es así, podría explicar por qué las personas encuentran la pregunta un poco confusa ... –
Todo esto, aparte de los nombres de las variables, es exactamente lo que hice/los errores que obtuve. Un poco más adelante también tengo un "SET @IsSomething = 1", lo agregaré a la pregunta – marcgg
@IsSomething no es un objeto de base de datos; es una variable T-SQL. Si recibió un error sobre un objeto existente, ese objeto se creó con un CREATE [tabla | ver | índice | etc] declaración, no DECLARAR. –