tipo temporales tablas tabla stored pedir pasar parametros parametro dinamica crear con como arreglo sql-server tsql table-valued-parameters

sql server - temporales - Cómo ALTERAR el parámetro de valor de tabla



tablas temporales sql server (2)

He encontrado una publicación de blog en sqltreeo.com que permite automatizar el proceso eliminando temporalmente las dependencias y luego recreandolas.

Acabo de modificarlo un poco.

1.Usted debe crear el siguiente procedimiento:

-- Find all referencing objects to user-defined table type in @fullObjectName parameter -- and generate DROP scripts and CREATE scripts for them CREATE PROC [dbo].[alterTableType] (@fullObjectName VARCHAR(200)) AS BEGIN SET NOCOUNT ON IF (TYPE_ID (@fullObjectName) IS NULL) BEGIN RAISERROR (''User-defined table type ''''%s'''' does not exists. Include full object name with schema.'', 16,1, @fullObjectName) RETURN END; WITH sources AS ( SELECT ROW_NUMBER() OVER (ORDER BY OBJECT_NAME(m.object_id)) RowId, definition FROM sys.sql_expression_dependencies d JOIN sys.sql_modules m ON m.object_id = d.referencing_id JOIN sys.objects o ON o.object_id = m.object_id WHERE referenced_id = TYPE_ID(@fullObjectName) ) SELECT ''BEGIN TRANSACTION'' UNION ALL SELECT ''DROP '' + CASE OBJECTPROPERTY(referencing_id, ''IsProcedure'') WHEN 1 THEN ''PROC '' ELSE CASE WHEN OBJECTPROPERTY(referencing_id, ''IsScalarFunction'') = 1 OR OBJECTPROPERTY(referencing_id, ''IsTableFunction'') = 1 OR OBJECTPROPERTY(referencing_id, ''IsInlineFunction'') = 1 THEN ''FUNCTION '' ELSE '''' END END + SCHEMA_NAME(o.schema_id) + ''.'' + + OBJECT_NAME(m.object_id) FROM sys.sql_expression_dependencies d JOIN sys.sql_modules m ON m.object_id = d.referencing_id JOIN sys.objects o ON o.object_id = m.object_id WHERE referenced_id = TYPE_ID(@fullObjectName) UNION ALL SELECT ''GO'' UNION ALL SELECT CHAR(13) + CHAR(10) + ''---- WRITE HERE SCRIPT TO DROP OLD USER DEFINED TABLE TYPE AND CREATE A NEW ONE ----'' + CHAR(13) + CHAR(10) UNION ALL SELECT CASE WHEN number = RowId THEN DEFINITION ELSE ''GO'' END FROM sources s JOIN (SELECT DISTINCT number FROM master.dbo.spt_values) n ON n.number BETWEEN RowId AND RowId+1 UNION ALL SELECT ''COMMIT'' END

2. Luego debe ejecutarlo con el nombre de tipo de tabla como parámetro de entrada. Muestre los resultados en formato de cuadrícula (porque el formato de texto puede truncar textos largos), seleccione la tabla de resultados completa y cópiela en una nueva ventana de consulta.

No obtengo una opción como ''ALTER TO'' cuando hago clic derecho en TVP


No puedo hacerlo Debes soltar / recrear. Si tiene dependencias en el TVP, debe:

  1. crear nuevo TVP bajo nuevo nombre
  2. Modificar dependencias a utilizar (1)
  3. caer viejo TVP
  4. recrear (1) bajo nombre original
  5. Modificar dependencias a utilizar (4)
  6. caída (1)