19 July 2011

Configurazione tastiera SQL Management Studio e ut_VisDipendenze_sq

Ctrl+3SELECT TOP 9 * FROM
Ctrl+4EXEC sp_help
Ctrl+5SELECT * FROM
Ctrl+6EXEC sp_helptext
Ctrl+7EXEC ut_VisDipendenze_sq
Ctrl+8SELECT TOP 20 * FROM sys.objects X ORDER BY X.modify_date DESC
Ctrl+0SELECT FORMAT(COUNT(*), 'N0') AS [Conta Record] FROM


CREATE PROCEDURE ut_VisDipendenze_sq
(
 @objectName AS nvarchar(1000)
)
AS
BEGIN
 --##2019-09-17 - Boso -           OBJECT_DEFINITION
 SET NOCOUNT ON
 
 IF CHARINDEX('.', @objectName) = 0
  SET @objectName = 'dbo.' + @objectName


 DECLARE @objectId int = OBJECT_ID(@objectName)


 SELECT OBJECT_NAME(referencing_id) AS referencing_entity_name, 
  o.type_desc AS referencing_desciption, 
  COALESCE(COL_NAME(referencing_id, referencing_minor_id), '(n/a)') AS referencing_minor_id, 
  referencing_class_desc,
  referenced_server_name, referenced_database_name, referenced_schema_name,
  referenced_entity_name
  , OBJECT_DEFINITION(OBJECT_ID(referenced_entity_name)) AS referenced_Definition
  , COALESCE(COL_NAME(referenced_id, referenced_minor_id), '(n/a)') AS referenced_column_name,
  is_caller_dependent, is_ambiguous
 FROM sys.sql_expression_dependencies AS sed
 INNER JOIN sys.objects AS o ON sed.referencing_id = o.object_id
 WHERE referencing_id = @objectId
 ORDER BY referencing_entity_name, referencing_desciption



 SELECT OBJECT_SCHEMA_NAME ( referencing_id ) AS referencing_schema_name,
  OBJECT_NAME(referencing_id) AS referencing_entity_name, 
  o.type_desc AS referencing_desciption
  , OBJECT_DEFINITION(o.object_id) AS referencing_Definition
  , COALESCE(COL_NAME(referencing_id, referencing_minor_id), '(n/a)') AS referencing_minor_id, 
  referencing_class_desc, referenced_class_desc,
  referenced_server_name, referenced_database_name, referenced_schema_name,
  referenced_entity_name, 
  COALESCE(COL_NAME(referenced_id, referenced_minor_id), '(n/a)') AS referenced_column_name,
  is_caller_dependent, is_ambiguous
 FROM sys.sql_expression_dependencies AS sed
   INNER JOIN sys.objects AS o 
    ON sed.referencing_id = o.object_id
 WHERE referenced_id = @objectId
 ORDER BY referencing_entity_name, referencing_desciption



 -- HACK: Returning cross-database dependencies
 -- https://msdn.microsoft.com/en-us/library/bb677315.aspx?f=255&MSPPError=-2147217396

END
GO

15 July 2011

Rinumerare le righe ad ogni cambio della chiave di testata

Nel caso di una tabella di righe, voglio rinumerare il prog ad ogni cambio di id:

-- CREO TABELLA DELLE RIGHE
declare @tmp table 
(
	  id int
	, prog int 
	, primary key (id,prog)
)


-- RIEMPIO CON VALORI 
insert @tmp select 1, 11
insert @tmp select 2, 22
insert @tmp select 2, 33
insert @tmp select 3, 44


--select * from @tmp


-- RINUMERO A PARTIRE DA 1 (ALTRIMENTI NON FUNZIONA!!)
declare @p int;set @p = 0
	
UPDATE	@tmp
SET		@p = prog = @p + 1



--select * from @tmp



-- TABELLA CON I NUOVI prog
declare @num as table
(
	  id int
	, prog int
	, oldProg int
	, primary key (id,prog)
)



-- MAGIA!!!!
insert @num
select
    T.id,
    T.prog - n,
    T.prog 
from
    @tmp T left join 
    (
        select 
            T.id, 
            count(distinct  T2.prog ) as n
        from 
            @tmp T left join 
            @tmp T2 on 
                T2.id < T.id
        group by
            T.id
    ) as P    on
        T.id=P.id


select * from @num


-- AGGIORNA NUOVI prog
update	t
set		t.prog = n.prog
from	@tmp t inner join 
		@num n on
			t.id = n.id
		and t.prog = n.oldProg
		


select * from @tmp

Trovato nel cervello del Faro.

11 July 2011

Get SQL Server version / Leggi la versione di SQL Server

SELECT SERVERPROPERTY('Edition') AS Edition,
SERVERPROPERTY('ProductLevel') AS ProductLevel,
SERVERPROPERTY('ProductVersion') AS ProductVersion