You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
In testing the scenarios mentioned in the open issue, I was able to get a correctly printed statement.
The main fix was converting the concatenated block of columns to an nvarchar(max), but I also took the opportunity to make all string assignment Unicode.
Closes#2816
(Hopefully)
SET @StringToExecute +=N'IF EXISTS(SELECT * FROM '
7037
7041
+@OutputDatabaseName
7038
7042
+N'.INFORMATION_SCHEMA.SCHEMATA WHERE QUOTENAME(SCHEMA_NAME) = '''
7039
7043
+@OutputSchemaName
7040
-
+''') AND EXISTS (SELECT * FROM '
7044
+
+N''') AND EXISTS (SELECT * FROM '
7041
7045
+@OutputDatabaseName+
7042
7046
N'.INFORMATION_SCHEMA.TABLES WHERE QUOTENAME(TABLE_SCHEMA) = '''
7043
7047
+@OutputSchemaName
7044
-
+''' AND QUOTENAME(TABLE_NAME) = '''
7048
+
+N''' AND QUOTENAME(TABLE_NAME) = '''
7045
7049
+@OutputTableName
7046
-
+''') AND EXISTS (SELECT * FROM '
7050
+
+N''') AND EXISTS (SELECT * FROM '
7047
7051
+@OutputDatabaseName+
7048
7052
N'.sys.computed_columns WHERE [name] = N''PlanCreationTimeHours'' AND QUOTENAME(OBJECT_NAME(object_id)) = N'''
7049
7053
+@OutputTableName
7050
-
+''' AND [definition] = N''(datediff(hour,[PlanCreationTime],sysdatetime()))'')
7054
+
+N''' AND [definition] = N''(datediff(hour,[PlanCreationTime],sysdatetime()))'')
7051
7055
BEGIN
7052
7056
RAISERROR(''We noticed that you are running an old computed column definition for PlanCreationTimeHours, fixing that now'',0,0) WITH NOWAIT;
7053
-
ALTER TABLE '+@OutputDatabaseName+'.'+@OutputSchemaName+'.'+@OutputTableName+' DROP COLUMN [PlanCreationTimeHours];
7054
-
ALTER TABLE '+@OutputDatabaseName+'.'+@OutputSchemaName+'.'+@OutputTableName+' ADD [PlanCreationTimeHours] AS DATEDIFF(HOUR,CONVERT(DATETIMEOFFSET(7),[PlanCreationTime]),[CheckDate]);
7057
+
ALTER TABLE '+@OutputDatabaseName+N'.'+@OutputSchemaName+N'.'+@OutputTableName+N' DROP COLUMN [PlanCreationTimeHours];
7058
+
ALTER TABLE '+@OutputDatabaseName+N'.'+@OutputSchemaName+N'.'+@OutputTableName+N' ADD [PlanCreationTimeHours] AS DATEDIFF(HOUR,CONVERT(DATETIMEOFFSET(7),[PlanCreationTime]),[CheckDate]);
0 commit comments