2396 – %1!L’attributo non può trovarsi all’esterno di un elemento.

Messaggio

Codice: 2396

Messaggio in italiano: %1!L’attributo non può trovarsi all’esterno di un elemento.
Continua a leggere 2396 – %1!L’attributo non può trovarsi all’esterno di un elemento.

Conteggio di tutte le tabelle

Ecco una query veloce per il conteggio di tutte le tabelle di un database, senza utilizzare cursori:

DECLARE @u TABLE (id INT, [schema] VARCHAR(200), name VARCHAR(1000))
INSERT INTO @u
SELECT ROW_NUMBER() OVER (ORDER BY s.name, t.name), s.name, t.name
FROM sys.tables t
	INNER JOIN sys.schemas s ON t.schema_id = s.schema_id

DECLARE @t TABLE (name VARCHAR(1000), c INT)

WHILE (SELECT COUNT(*) FROM @u) > 0
BEGIN
	DECLARE @n VARCHAR(1000), @s VARCHAR(200)
	SELECT TOP 1 @s = QUOTENAME([schema]), @n = QUOTENAME(name) FROM @u
	INSERT INTO @t EXEC ('SELECT ''' + @s + '.' + @n + ''', COUNT(*) FROM ' + @s + '.' + @n)
	DELETE FROM @u WHERE id = (SELECT TOP 1 id FROM @u)
END
SELECT * FROM @t

443 – Utilizzo non valido di un operatore con effetto collaterale ‘%1!’ nell’ambito di una funzione.

Messaggio

Codice: 2389

Messaggio in italiano: Utilizzo non valido di un operatore con effetto collaterale ‘%1!’ nell’ambito di una funzione.
Continua a leggere 443 – Utilizzo non valido di un operatore con effetto collaterale ‘%1!’ nell’ambito di una funzione.

Quali query sono in esecuzione in questo momento?

Avendo gli opportuni diritti, è possibile interrogare la vista di sistema sys.sysprocesses e passare ogni valore del suo sql_handle alla funzione di sistema sys.fn_get_sql per ottenere il testo della query.

La query risultante è questa:

SELECT hostname, nt_domain, nt_username, loginame, status, text
FROM sys.sysprocesses sp CROSS APPLY sys.fn_get_sql(sp.sql_handle)
WHERE status NOT IN ('dormant', 'sleeping')
ORDER BY cpu DESC

Concatenare stringhe su diverse righe di una tabella

Se hai SQL Server 2017 o superiori, fermati pure: la funzione che cerchi è STRING_AGG. Prego.

 

Se invece stai lavorando ancora con il 2016 (cosa dici? 2014??? 2012??? 2008?????????), vorresti una funzione simile, ma non esiste. Continua a leggere Concatenare stringhe su diverse righe di una tabella

512 – La sottoquery ha restituito più di un valore. Ciò non è consentito per le sottoquery che seguono i caratteri =, !=, <, <= , >, >= o utilizzate come espressione.

Messaggio

Codice: 512

Messaggio in italiano: La sottoquery ha restituito più di un valore. Ciò non è consentito per le sottoquery che seguono i caratteri =, !=, <, <= , >, >= o utilizzate come espressione.
Continua a leggere 512 – La sottoquery ha restituito più di un valore. Ciò non è consentito per le sottoquery che seguono i caratteri =, !=, <, <= , >, >= o utilizzate come espressione.

116 – Se una sottoquery non è introdotta da EXISTS, nell’elenco di selezione è possibile specificare una sola espressione.

Messaggio

Codice: 116

Messaggio in italiano: Se una sottoquery non è introdotta da EXISTS, nell’elenco di selezione è possibile specificare una sola espressione.
Continua a leggere 116 – Se una sottoquery non è introdotta da EXISTS, nell’elenco di selezione è possibile specificare una sola espressione.