c# - una - Parámetro opcional de valor de tabla
tipos de tablas en c# (3)
Básicamente, tener el valor predeterminado "= nulo" no tiene sentido y es la razón del error.
De forma predeterminada, @Table testteype
obtiene el valor de una tabla vacía. Por lo tanto, puede eliminar = null:
CREATE PROCEDURE SP
@Table testteype READONLY
AS
....
Referencia: para una muestra sobre cómo usar esto con C # ADO.NET, recomendaría usar esta publicación - Uso de parámetros valiosos de tabla de SQL Server
¿Es posible crear un procedimiento con un parámetro de valor de tabla como un parámetro opcional?
Probé el siguiente código:
CREATE PROCEDURE SP
@Table testteype = null READONLY
AS
....
Pero me sale este error:
Operand type clash: void type is incompatible with test type
ps: uso servidor sql con C # .Net
Los parámetros de valor de tabla siempre tienen un valor implícito de una tabla vacía. Así que puedes llamar a ese procedimiento sin ningún parámetro y se ejecutaría, pero la tabla estaría vacía.
Por lo tanto, no tiene sentido etiquetar un parámetro de valor de tabla con un valor predeterminado. Elimine "= null", verifique el contenido de la tabla y debería estar listo.
No estoy seguro de por qué la respuesta anterior indica que hacer un valor predeterminado = NULL es incorrecto, pero esto funciona para mí.
CREATE PROCEDURE SP
(
@Param1 VARCHAR(10),
@Param2 VARCHAR(10)=NULL
)
SELECT......
WHERE @Param1 = SOMETHING
AND (@Param2 = SOMETHING OR @Param2 IS NULL)