2011-08-08 9 views
15

Migrar el código asp.net (VB.net) para usar funciones y subrutinas como parámetros. Usando MS Server Management Studio para crear dichas funciones y subs. Quiere probar las funciones desde MS SMS antes de probarlas a través de la página web. Aquí hay un ejemplo. Digamos que tiene una función llamada "dbo.getNumber"Asignar el resultado de la función a la variable SQL y mostrar

Estoy tratando de probarlo utilizando la siguiente:

USE [someDB] 
GO 
SET ANSI_NULLS ON 
GO 
SET QUOTED_IDENTIFIER ON 
GO 
declare @value int; 

select @value = dbo.getNumber; 

print @value; 
go 

Cuando escribo F5 (para ejecutar la "consulta") da la siguiente msg :

"El nombre" dbo.getNumber "no está permitido en este contexto. Las expresiones válidas son constantes, expresiones constantes y (en algunos contextos) variables. Los nombres de columna no están permitidos."

La función dbo.getNumber fue aceptada muy bien, por cierto. (Está contando los registros de una base de datos que cumple con ciertos criterios.)

Espero que pueda deducir del código que no funciona lo que estoy tratando de hacer.

¿Cómo puedo imprimir el valor de una función (con fines de prueba) desde SMS?

solución correcta según James Johnson, a continuación:

USE [someDB] 
GO 
SET ANSI_NULLS ON 
GO 
SET QUOTED_IDENTIFIER ON 
GO 
declare @value int; 

select @value = dbo.getNumber(); 

print @value; 
go 

Nota los parens para la invocación de la función. Tenga en cuenta también: intellisense en SMS subraya dbo.getNumber() como si fuera un error, pero ejecutar la consulta con F5 funciona y arroja el resultado correcto.

Respuesta

35

es necesario llamar así:

select @value = dbo.getNumber() 
+0

eso es todo. Dangit. (No puedo aceptar esto por otros 7 minutos, pero lo haré). Estaba un poco confundido por el hecho de que estaba subrayado como si fuera incorrecto, sin importar lo que hice. ¡Gracias! – elbillaf

+0

Me alegro de que funcionó. Te agradezco que lo hayas seleccionado como la respuesta :) –

+0

+1 Espero haber hecho tu día !! – Mukus

Cuestiones relacionadas