func()

in internal/database/sqlserver/sqlserver.go [504:529]


func (h sqlServerHandler) GetTableComment(ctx context.Context, db *database.DB, tableName string) (string, error) {
	query := `
    SELECT CAST(ep.value AS NVARCHAR(MAX))
    FROM sys.extended_properties AS ep
    INNER JOIN sys.tables AS t ON ep.major_id = t.object_id
    INNER JOIN sys.schemas AS s ON t.schema_id = s.schema_id
    WHERE ep.minor_id = 0
    AND ep.name = 'MS_Description'
    AND t.name = @tableName
    AND s.name = 'dbo';
    `
	var comment sql.NullString
	err := db.QueryRowContext(ctx, query, sql.Named("tableName", tableName)).Scan(&comment)

	if err != nil {
		if err == sql.ErrNoRows {
			return "", nil // No comment, return empty string.
		}
		return "", fmt.Errorf("failed to retrieve table comment: %w", err)
	}

	if comment.Valid {
		return comment.String, nil
	}
	return "", nil // Comment is NULL.
}