in internal/database/sqlserver/sqlserver.go [532:570]
func (h sqlServerHandler) GenerateDeleteTableCommentSQL(ctx context.Context, db *database.DB, tableName string) (string, error) {
if tableName == "" {
return "", fmt.Errorf("table name cannot be empty")
}
existingComment, err := h.GetTableComment(ctx, db, tableName)
if err != nil {
return "", err
}
startTag := "<gemini>"
endTag := "</gemini>"
startIndex := strings.Index(existingComment, startTag)
endIndex := strings.LastIndex(existingComment, endTag)
var finalComment string
if startIndex != -1 && endIndex != -1 && endIndex > startIndex {
prefix := existingComment[:startIndex]
suffix := existingComment[endIndex+len(endTag):]
finalComment = strings.TrimSpace(prefix + suffix)
} else {
finalComment = existingComment // No gemini tags, keep original.
}
// Use sp_updateextendedproperty to update the comment (removing the Gemini part)
sqlStmt := fmt.Sprintf(`
EXEC sp_updateextendedproperty
@name = N'MS_Description',
@value = N'%s',
@level0type = N'SCHEMA',
@level0name = N'dbo',
@level1type = N'TABLE',
@level1name = %s;`,
finalComment,
h.QuoteIdentifier(tableName),
)
return sqlStmt, nil
}