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:
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.
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


0