SQL - Error al reemplazar nombre de tabla por una variable

 
Vista:
sin imagen de perfil
Val: 5
Ha aumentado su posición en 30 puestos en SQL (en relación al último mes)
Gráfica de SQL

Error al reemplazar nombre de tabla por una variable

Publicado por Sivle (3 intervenciones) el 30/03/2020 16:07:44
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
/* Hola a todos, Soy nuevo en SQL
Estoy generando una función que me permita ingresar nombre de un campo ID y nombre tabla.
Para verificar registros, si esta vacío(nullo) o si tiene algún registro.
Me sale un error cuando intento reemplazar nombre de una tabla con una variable */
 
Create function F_ObteniendoID
(@Nomcampo as nvarchar(max),
@NombTab as nvarchar(max))
returns varchar(max)
as
begin
 
	declare @id int=0;
	declare @retornar as varchar(max);
	if  (select MAX(@Nomcampo) from @NombTab) is null
	begin
		set @retornar = 'No se tienen registros'
	end
	else
	begin
	set @id= (select MAX(@Nomcampo) from @NombTab)
	set @retornar = 'El ultimo Id generado es el ' + convert(varchar(3),@id);
	end
Return @retornar
end;
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
Imágen de perfil de Isaias
Val: 2.542
Oro
Ha mantenido su posición en SQL (en relación al último mes)
Gráfica de SQL

Error al reemplazar nombre de tabla por una variable

Publicado por Isaias (1921 intervenciones) el 30/03/2020 19:45:24
Tendrias que realizar tu query DINAMICO, ¿que motor de base de datos utilizas?
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil
Val: 5
Ha aumentado su posición en 30 puestos en SQL (en relación al último mes)
Gráfica de SQL

Error al reemplazar nombre de tabla por una variable

Publicado por Sivle (3 intervenciones) el 30/03/2020 19:46:42
Sql Server
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de Isaias
Val: 2.542
Oro
Ha mantenido su posición en SQL (en relación al último mes)
Gráfica de SQL

Error al reemplazar nombre de tabla por una variable

Publicado por Isaias (1921 intervenciones) el 31/03/2020 02:04:03
¿Sabes hacer query's dinamicos?
1
2
3
4
DECLARE @SQLString NVARCHAR(1000)
DECLARE @MyTable sysname = 'CLIENTE'
SET @SQLString = N'SELECT * FROM '+@MyTable
EXECUTE sp_executesql @SQLString
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil
Val: 5
Ha aumentado su posición en 30 puestos en SQL (en relación al último mes)
Gráfica de SQL

Error al reemplazar nombre de tabla por una variable

Publicado por Sivle (3 intervenciones) el 31/03/2020 02:12:20
Estuve revisando ese tema, tengo una duda. Como puedo obtener el valor del execute y colocarlo o depositarlo en una variable.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de Isaias
Val: 2.542
Oro
Ha mantenido su posición en SQL (en relación al último mes)
Gráfica de SQL

Error al reemplazar nombre de tabla por una variable

Publicado por Isaias (1921 intervenciones) el 31/03/2020 04:24:32
Revisa este liga donde se explica como enviar valores y recibir resultados ejecutando el procedimiento sp_executesql

https://docs.microsoft.com/es-es/sql/relational-databases/system-stored-procedures/sp-executesql-transact-sql?view=sql-server-ver15

Hay un ejemplo donde se envian parametros y se reciben resultados de salida

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
DECLARE @IntVariable int;
DECLARE @SQLString nvarchar(500);
DECLARE @ParmDefinition nvarchar(500);
 
/* Build the SQL string one time.*/
SET @SQLString =
     N'SELECT BusinessEntityID, NationalIDNumber, JobTitle, LoginID
       FROM AdventureWorks2012.HumanResources.Employee
       WHERE BusinessEntityID = @BusinessEntityID';
SET @ParmDefinition = N'@BusinessEntityID tinyint';
/* Execute the string with the first parameter value. */
SET @IntVariable = 197;
EXECUTE sp_executesql @SQLString, @ParmDefinition,
                      @BusinessEntityID = @IntVariable;
/* Execute the same string with the second parameter value. */
SET @IntVariable = 109;
EXECUTE sp_executesql @SQLString, @ParmDefinition,
                      @BusinessEntityID = @IntVariable;
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar