tabla resueltos paso para frecuencias estadistica ejercicios distribucion descriptiva datos agrupados sql sql-server sql-server-2000

sql - paso - ejercicios resueltos de tabla de frecuencias para datos agrupados



¿Hay alguna forma de persistir en una variable a lo largo de un intento? (7)

El comando go se usa para dividir código en lotes separados. Si eso es exactamente lo que quiere hacer, entonces debe usarlo, pero significa que los lotes están realmente separados, y no puede compartir variables entre ellos.

En tu caso, la solución es simple; simplemente puede eliminar las declaraciones go , no son necesarias en ese código.

Nota al margen: no puede usar una variable en una declaración de use , tiene que ser el nombre de una base de datos.

¿Hay alguna forma de persistir en una variable a lo largo de un intento?

Declare @bob as varchar(50); Set @bob = ''SweetDB''; GO USE @bob --- see note below GO INSERT INTO @bob.[dbo].[ProjectVersion] ([DB_Name], [Script]) VALUES (@bob,''1.2'')

Vea esta pregunta SO para la línea ''USE @bob''.


Las tablas de temperatura se conservan en las declaraciones GO, por lo que ...

SELECT ''value1'' as variable1, ''mydatabasename'' as DbName INTO #TMP -- get a variable from the temp table DECLARE @dbName VARCHAR(10) = (select top 1 #TMP.DbName from #TMP) EXEC (''USE '' + @dbName) GO -- get another variable from the temp table DECLARE @value1 VARCHAR(10) = (select top 1 #TMP.variable1 from #TMP) DROP TABLE #TMP

No es bonito, pero funciona


No estoy seguro si esto ayuda

declare @s varchar(50) set @s=''Northwind'' declare @t nvarchar(100) set @t = ''select * from '' + @s + ''.[dbo].[Customers]'' execute sp_executesql @t


Prefiero la respuesta a esta pregunta Variables globales con GO

Lo cual tiene el beneficio adicional de poder hacer lo que originalmente querías hacer también.

La advertencia es que debe activar el modo SQLCMD (en Query-> SQLCMD) o activarlo de manera predeterminada para todas las ventanas de consulta (Herramientas-> Opciones luego Buscar resultados-> Por defecto, abrir nuevas consultas en modo SQLCMD)

Entonces puede usar el siguiente tipo de código (completamente arrancado de la misma respuesta por Oscar E. Fraxedas Tormo )

--Declare the variable :setvar MYDATABASE master --Use the variable USE $(MYDATABASE); SELECT * FROM [dbo].[refresh_indexes] GO --Use again after a GO SELECT * from $(MYDATABASE).[dbo].[refresh_indexes]; GO


Si está utilizando SQL Server puede configurar variables globales para scripts completos como:

:setvar sourceDB "lalalallalal"

y usar luego en el script como:

$(sourceDB)

Asegúrese de que el modo SQLCMD esté activado en Server Managment Studi, puede hacerlo a través del menú superior Haga clic en Consultar y active el Modo SQLCMD.

Se puede encontrar más sobre el tema aquí: MS Documentation


Use una tabla temporal:

CREATE TABLE #variables ( VarName VARCHAR(20) PRIMARY KEY, Value VARCHAR(255) ) GO Insert into #variables Select ''Bob'', ''SweetDB'' GO Select Value From #variables Where VarName = ''Bob'' GO DROP TABLE #variables go


puede usar sql dinámico, solo tenga en cuenta los riesgos de seguridad con esto (no 100% seguro en el sintexto correcto)

declarar @bob nvarchar (50)

declare @sql nvarchar(max) set @bob=''SweetDB'' set @sql = ''Use '' + @bob execute sp_executesql @sql