SQL Server - Ayuda con codigo SQL

 
Vista:
Imágen de perfil de Aliz
Val: 1
Ha disminuido su posición en 28 puestos en SQL Server (en relación al último mes)
Gráfica de SQL Server

Ayuda con codigo SQL

Publicado por Aliz (1 intervención) el 22/08/2019 21:13:07
Buen día, me pueden apoyar con esta consulta no se que estoy haciendo mal:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
SET @QrySelectCase = 'SELECT'
+ @ColList + ' = ' +  @ColList + '+ CASE C.is_identity WHEN 1 THEN ''CONVERT('' + T.name + '', '' + QUOTENAME(C.name) + '') AS '' + QUOTENAME(C.name) ELSE QUOTENAME(C.name) END + '', '', ' +
@InsertColList + ' = ' +  @InsertColList + '+ QUOTENAME(C.name) + '', '', ' +
@UpdateCheck + ' = ' + @UpdateCheck + '+ CASE WHEN CHARINDEX('','' + UPPER(C.name) + '','', ' + @DontAuditforColumns + ') = 0 THEN ''		CASE WHEN UPDATE('' + QUOTENAME(C.name) + '') AND (i.'' + QUOTENAME(C.name) + '' <> d.'' + QUOTENAME(C.name) + '') THEN '''''' + QUOTENAME(C.name) + ''-'''' ELSE '''' END '' + CHAR(10) ELSE '''' END, ' +
@PrimaryKeys + ' = ' + @PrimaryKeys + ' + CASE	WHEN I.is_primary_key = 1 THEN ''i.'' + QUOTENAME(C.name) + '' = d.'' + QUOTENAME(C.name) + '' AND '' ELSE '''' END
FROM   sys.columns				C
    JOIN sys.objects			O	ON C.object_id = O.object_id
    JOIN sys.schemas			S	ON S.schema_id = O.schema_id
    JOIN sys.types				T	ON T.user_type_id = C.user_type_id AND T.system_type_id = C.system_type_id
    LEFT JOIN sys.index_columns	IC
    INNER JOIN sys.indexes	I	ON IC.object_id = I.object_id AND I.is_primary_key = 1
    ON C.object_id = IC.object_id AND C.column_id = IC.column_id AND I.index_id = IC.index_id
WHERE S.name  = ''' + @Schemaname + '''
 AND O.name = ''' + @Tablename + '''
 AND UPPER(T.name) <> UPPER(''timestamp'')'
 
BEGIN
    PRINT 'SE REALIZO :' +  @QrySelectCase
    EXEC(@QrySelectCase)
    PRINT 'SE REALIZO :'
END

Me sale el siguiente error
Msg 537, Level 16, State 3, Procedure Master.dbo.GenerateAudit, Line 174 [Batch Start Line 0]
Invalid length parameter passed to the LEFT or SUBSTRING function.
Msg 537, Level 16, State 3, Procedure Master.dbo.GenerateAudit, Line 175 [Batch Start Line 0]
Invalid length parameter passed to the LEFT or SUBSTRING function.
Msg 537, Level 16, State 3, Procedure Master.dbo.GenerateAudit, Line 176 [Batch Start Line 0]
Invalid length parameter passed to the LEFT or SUBSTRING function.
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 Vega
Val: 102
Ha aumentado su posición en 3 puestos en SQL Server (en relación al último mes)
Gráfica de SQL Server

Ayuda con codigo SQL

Publicado por Vega (43 intervenciones) el 24/08/2019 10:24:19
Nos ayudaría ver la el código que genera el contenido de las siguientes variables:
@ColList
@InsertColList
@UpdateCheck
@PrimaryKeys
@DontAuditforColumns
@Schemaname
@tableName
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 Lisandro
Val: 51
Ha aumentado 1 puesto en SQL Server (en relación al último mes)
Gráfica de SQL Server

Ayuda con codigo SQL

Publicado por Lisandro (20 intervenciones) el 24/08/2019 22:22:52
Después que termines tu query
Antes del begin pon esto
Print(@qryselectcase)
Con eso vas a ver la consulta que estás generando
Debe faltarte algún ‘
Suerte
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