@@ -455,6 +455,31 @@ function TMsSqlProvider.GetSql(AId: TQueryId): string;
455455 qLikeCompare: Result := ' %s LIKE %s' ;
456456 qAddColumn: Result := ' ADD %s' ;
457457 qChangeColumn: Result := ' ALTER COLUMN %s %s' ;
458+ qSetColumnComment: Result := ' IF NOT EXISTS (' + sLineBreak +
459+ ' SELECT 1' + sLineBreak +
460+ ' FROM fn_listextendedproperty (' + sLineBreak +
461+ ' N'' MS_Description'' ,' + sLineBreak +
462+ ' N'' SCHEMA'' , :EscapedSchema,' + sLineBreak +
463+ ' N'' TABLE'' , :EscapedName,' + sLineBreak +
464+ ' N'' COLUMN'' , :TargetColumn' + sLineBreak +
465+ ' )' + sLineBreak +
466+ ' )' + sLineBreak +
467+ ' BEGIN' + sLineBreak +
468+ ' EXEC sys.sp_addextendedproperty' + sLineBreak +
469+ ' @name = N'' MS_Description'' ,' + sLineBreak +
470+ ' @value = :NewComment,' + sLineBreak +
471+ ' @level0type = N'' SCHEMA'' , @level0name = :EscapedSchema,' + sLineBreak +
472+ ' @level1type = N'' TABLE'' , @level1name = :EscapedName,' + sLineBreak +
473+ ' @level2type = N'' COLUMN'' , @level2name = :TargetColumn' + sLineBreak +
474+ ' END' + sLineBreak +
475+ ' ELSE BEGIN' + sLineBreak +
476+ ' EXEC sys.sp_updateextendedproperty' + sLineBreak +
477+ ' @name = N'' MS_Description'' ,' + sLineBreak +
478+ ' @value = :NewComment,' + sLineBreak +
479+ ' @level0type = N'' SCHEMA'' , @level0name = :EscapedSchema,' + sLineBreak +
480+ ' @level1type = N'' TABLE'' , @level1name = :EscapedName,' + sLineBreak +
481+ ' @level2type = N'' COLUMN'' , @level2name = :TargetColumn' + sLineBreak +
482+ ' END' ;
458483 qSessionVariables: Result := ' SELECT comment, value FROM master.dbo.syscurconfigs ORDER BY comment' ;
459484 qGlobalVariables: Result := ' SELECT comment, value FROM master.dbo.syscurconfigs ORDER BY comment' ;
460485 qISSchemaCol: Result := ' %s_CATALOG' ;
0 commit comments